В чем разница между stack и очередью

«В чем разница между stack и очередью» — вопрос из категории Алгоритмы, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Stack (стек) и очередь (queue) - это структуры данных с разными принципами работы:

Стек работает по принципу LIFO (Last In, First Out) - последний пришел, первый ушел. Пример:

const stack = [];
stack.push(1); // [1]
stack.push(2); // [1, 2]
stack.pop();   // возвращает 2, стек [1]

Очередь работает по FIFO (First In, First Out) - первый пришел, первый ушел. Пример:

const queue = [];
queue.push(1); // [1]
queue.push(2); // [1, 2]
queue.shift(); // возвращает 1, очередь [2]

Основные различия:

  • У стека один конец для операций (push/pop), у очереди два (enqueue/push и dequeue/shift)
  • Стек используется для вызовов функций, отмены действий, очередь - для обработки задач по порядку