Это линейная структура данных, которая работает как реальная очередь. Он следует порядку FIFO (первым пришел, первым ушел) и LILO (последний пришел последним).
Основные операции структуры данных стека:
- enqueue: добавляет элементы в конец
- dequeue: удаляет элементы с переднего плана.
- Peek: извлекает 1-й элемент в очереди, не удаляя его.
- isEmpty: проверяет, пуста ли очередь.
Синтаксис:
class Queue {
constructor() {
this.items = [];
}
enqueue(value) {
// if(this.isEmpty()) return 'Queue is empty';
this.items.push(value);
}
dequeue() {
// if(this.isEmpty()) return 'Queue is empty';
return this.items.shift();
}
peek() {
return this.items[0];
}
isEmpty() {
return this.items.length === 0;
}
}
Массив и его методы используются для реализации структуры данных очереди и ее операций. Теперь давайте посмотрим на реализацию каждой операции:
- enqueue(value): использует
Array.prototype.push()для добавления элемента в конец массива. - dequeue(): использует
Array.prototype.shift()для удаления элемента из начала массива. - peek(): извлекает первый элемент массива, не удаляя его.
- isEmpty(): использует
Array.prototype.length, чтобы определить, пуст ли массив или нет.
Пример:
let queueObj = new Queue(); queueObj.enqueue(10); queueObj.enqueue(20); queueObj.enqueue(30); queueObj.isEmpty(); // false queueObj.peek(); // 10 queueObj.dequeue(); // 10 queueObj.dequeue(); // 20 queueObj.dequeue(); // 30 queueObj.isEmpty(); // true
Спасибо за чтение! Я надеюсь, что вы нашли этот блог информативным и интересным. Если вы заметили какие-либо неточности или у вас есть какие-либо отзывы, пожалуйста, не стесняйтесь, дайте мне знать.