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
classwith aconstructorthat 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 theitemsarray. - Define a
dequeue()method, which usesArray.prototype.shift()to remove an element from the start of theitemsarray. - Define a
peek()method, which retrieves the value of the first element in theitemsarray, without removing it. - Define an
isEmpty()method, which usesArray.prototype.lengthto determine if theitemsarray 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