content/snippets/js/s/data-structures-queue.md
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 emptyclass 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;
}
}
class with a constructor that initializes an empty array, items, for each instance.enqueue() method, which uses Array.prototype.push() to add an element, item, to the end of the items array.dequeue() method, which uses Array.prototype.shift() to remove an element from the start of the items array.peek() method, which retrieves the value of the first element in the items array, without removing it.isEmpty() method, which uses Array.prototype.length to determine if the items 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'