Definition
A queue is a linear data structure that behaves like a real-world queue. It follows a first in, first out (FIFO) order of operations, similar to its real-world counterpart. This means that new items are added to the end of the queue, whereas items are removed from the start of the queue.
The main operations of a queue data structure are:
enqueue
: Adds an element to the end of the queuedequeue
: Removes an element from the start of the queuepeek
: Retrieves the element at the start of the queue, without removing itisEmpty
: Checks if the queue is empty
Implementation
代码实现
class Queue {
constructor() {
this.items = [];
}
enqueue(item) {
this.items.push(item);
}
dequeue() {
return this.items.shift();
}
peek() {
return this.items[0];
}
isEmpty() {
return this.items.length === 0;
}
}
- Create a
class
with aconstructor
that initializes an empty array,items
, for each instance. - Define an
enqueue()
method, which usesArray.prototype.push()
to add an element,item
, to the end of theitems
array. - Define a
dequeue()
method, which usesArray.prototype.shift()
to remove an element from the start of theitems
array. - Define a
peek()
method, which retrieves the value of the first element in theitems
array, without removing it. - Define an
isEmpty()
method, which usesArray.prototype.length
to determine if theitems
array is empty.
使用样例
const queue = new Queue();
queue.isEmpty(); // true
queue.enqueue('A');
queue.enqueue('B');
queue.enqueue('C');
queue.enqueue('D');
queue.enqueue('E');
queue.isEmpty(); // false
queue.peek(); // 'A'
queue.dequeue(); // 'A'
queue.dequeue(); // 'B'
queue.dequeue(); // 'C'
翻译自:https://www.30secondsofcode.org/js/s/data-structures-queue