PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

Если первым пришел в стек то каким выйдешь?

Массивы и структуры данных

Если первым пришёл в стек, то выйдешь последним — стек работает по принципу LIFO (Last In, First Out).

Принцип стека — LIFO

Стек (stack) добавляет и извлекает элементы с одного конца (вершины):

  • Последний добавленный — извлекается первым.
  • Первый добавленный — извлекается последним.
const stack = [];
stack.push('A'); // первый пришёл
stack.push('B');
stack.push('C'); // последний пришёл
stack.pop();     // 'C' — последний вышел первым
stack.pop();     // 'B'
stack.pop();     // 'A' — первый вышел последним

Аналогия

Стопка тарелок: кладёшь сверху, берёшь сверху. Первая (нижняя) тарелка снимается последней.

Где встречается

  • Call stack — стек вызовов функций: первая вызванная функция завершается последней.
  • История браузера, undo/redo.
  • Обход в глубину (DFS).
function a() { b(); } // a первой вошла
function b() { c(); }
function c() {}       // c последней вошла, первой вышла
a(); // порядок выхода: c, b, a

Стек против очереди

  • Стек (LIFO) — первый вошёл, последний вышел.
  • Очередь (FIFO) — первый вошёл, первый вышел.

Коротко для собеседования

Стек работает по LIFO (Last In, First Out): первый пришедший выходит последним, последний — первым. Как стопка тарелок. Так работает call stack (первая функция завершается последней), undo, DFS. Противоположность — очередь (FIFO).

Другие вопросы раздела