Задача на JavaScript: Реализация очереди с помощью массива
Сегодняшняя задача — реализовать простую структуру данных "очередь" (queue) с помощью массива в JavaScript. В очереди элементы добавляются в конец, а удаляются из начала, по принципу "первым пришел — первым ушел" (FIFO — First In, First Out).
Условия задачи:
- Необходимо создать объект
Queue, который будет поддерживать следующие методы: - enqueue(element) — добавляет элемент в конец очереди.
- dequeue() — удаляет и возвращает элемент из начала очереди.
- peek() — возвращает элемент из начала очереди, но не удаляет его.
- isEmpty() — возвращает
true, если очередь пуста, иначеfalse. - size() — возвращает количество элементов в очереди.
- После реализации, создайте несколько элементов в очереди и протестируйте все методы.
Пример использования:
js
Копировать код
class Queue {
constructor() {
this.items = [];
}
// Добавление элемента в очередь
enqueue(element) {
this.items.push(element);
}
// Удаление элемента из начала очереди
dequeue() {
if (this.isEmpty()) {
return "Очередь пуста";
}
return this.items.shift();
}
// Получение первого элемента без удаления
peek() {
if (this.isEmpty()) {
return "Очередь пуста";
}
return this.items[0];
}
// Проверка, пуста ли очередь
isEmpty() {
return this.items.length === 0;
}
// Возвращает размер очереди
size() {
return this.items.length;
}
}
// Пример использования очереди
const queue = new Queue();
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
console.log(queue.peek()); // 10
console.log(queue.dequeue()); // 10
console.log(queue.size()); // 2
console.log(queue.isEmpty()); // false
Дополнительное задание:
Попробуйте модифицировать класс Queue, чтобы он поддерживал максимальный размер очереди. Если количество элементов в очереди превышает этот размер, новые элементы не должны добавляться.
Эта задача поможет вам разобраться с работой массивов, методами добавления и удаления элементов, а также с основами структуры данных "очередь".