Что такое очередь

Ответ

Очередь — это структура данных, работающая по принципу FIFO (First In, First Out), где первый добавленный элемент первым и удаляется.

Основные операции:

  • enqueue — добавление элемента в конец
  • dequeue — удаление элемента из начала
  • peek — просмотр первого элемента без удаления

Пример на JavaScript:

class Queue {
  constructor() {
    this.items = [];
  }

  enqueue(item) {
    this.items.push(item);
  }

  dequeue() {
    return this.items.shift();
  }

  peek() {
    return this.items[0];
  }
}

const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
console.log(queue.dequeue()); // 1

Применение:

  • Обработка задач в порядке поступления
  • Браузерная очередь событий (Event Loop)
  • Буферизация данных

Ответ 18+ 🔞

Так, слушай, смотри, вот есть у нас такая штука — очередь. Представь себе, блядь, самую обычную живую очередь, например, в столовой. Кто первый пришёл, тот первый и сосиску с пюрешкой получил, а потом свалил. Это и есть FIFO, ёпта! First In, First Out — первый зашёл, первый вышел. Проще некуда.

Чё она умеет делать, эта очередь?

  • enqueue — это типа «встать в хвост очереди». Пришёл, занял место, жди своей участи.
  • dequeue — это «подошло твоё охуенное время». Первого в очереди выгоняют, и он идёт делать свои дела.
  • peek — это подленько так подсмотреть, кто там сейчас первый, но не трогать его. Типа: «Ага, этот лысый дядька следующий, интересно».

Вот, смотри, как это в коде выглядит, тут всё честно:

class Queue {
  constructor() {
    this.items = [];
  }

  enqueue(item) {
    this.items.push(item);
  }

  dequeue() {
    return this.items.shift();
  }

  peek() {
    return this.items[0];
  }
}

const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
console.log(queue.dequeue()); // 1

Видишь? Закинули единичку, потом двойку. А когда спросили «чё там по деqueue?», очередь, не моргнув глазом, выдала самую первую — единичку. Честно, как в аптеке, блядь.

А где эта хуйня пригождается?

Да везде, ёбана! Например, когда у тебя куча задач навалилась — ты их в очередь и пихаешь, и они по очереди, как приличные, выполняются. Или вот браузер, тот вообще мастер очередей: все клики, скроллы и прочие события у него в очередь становятся, чтобы не перегреться, сука. В общем, штука полезная, хоть и простая, как три копейки.