Задача на JavaScript: Реализация очереди с помощью массива

Задача на JavaScript: Реализация очереди с помощью массива


Сегодняшняя задача — реализовать простую структуру данных "очередь" (queue) с помощью массива в JavaScript. В очереди элементы добавляются в конец, а удаляются из начала, по принципу "первым пришел — первым ушел" (FIFO — First In, First Out).

Условия задачи:

  1. Необходимо создать объект Queue, который будет поддерживать следующие методы:
  2. enqueue(element) — добавляет элемент в конец очереди.
  3. dequeue() — удаляет и возвращает элемент из начала очереди.
  4. peek() — возвращает элемент из начала очереди, но не удаляет его.
  5. isEmpty() — возвращает true, если очередь пуста, иначе false.
  6. size() — возвращает количество элементов в очереди.
  7. После реализации, создайте несколько элементов в очереди и протестируйте все методы.

Пример использования:

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, чтобы он поддерживал максимальный размер очереди. Если количество элементов в очереди превышает этот размер, новые элементы не должны добавляться.

Эта задача поможет вам разобраться с работой массивов, методами добавления и удаления элементов, а также с основами структуры данных "очередь".

Report Page