foundation

Стеки, очереди и deques

Паттерны LIFO и FIFO для разбора, обхода, планирования и monotonic queues.

Stacks моделируют last-in-first-out работу: parsing brackets, undo history, DFS и monotonic candidates. Queues моделируют first-in-first-out работу: BFS, scheduling и buffering. Deques поддерживают оба конца и встречаются в sliding window maximum и double-ended scheduling задачах.

Компромисс: сравните время, память и сложность реализации до выбора структуры или паттерна.

На интервью: Интервьюеры смотрят на access invariant: что входит, что выходит и почему структура гарантирует следующий корректный item.

Типовые ошибки: Array.shift в JavaScript может быть O(n), потому что элементы сдвигаются. Для queues в performance-sensitive примерах лучше head index или deque abstraction.

Чеклист:

  • Назовите LIFO или FIFO.
  • Объясните invariant.
  • Выбирайте head-index queues в JS.
  • Проверьте empty-pop behavior.