Стек (англ. stack — стопка) — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (последним пришёл — первым вышел).
Стек имеет две ключевые операции:
- добавление (push) элемента в конец стека, и
- удаление (pop), последнего добавленного элемента.
Дополнительная операция чтения головного элемента (peek) даёт доступ к последнему элементу стека без изменения самого стека.
Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно снять верхнюю.
Иллюстрация работы со стеком.