Если первым пришел в стек то каким выйдешь?
Массивы и структуры данных
Если первым пришёл в стек, то выйдешь последним — стек работает по принципу 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).