Что такое стек?
Стек - это структура, разработанная для очень специфического хранения данных. Представьте себе стопку монет. Вы не можете положить монету нигде, кроме как на вершине стека. Точно так же Вы не можете получить монету из стека из любого места, кроме вершины стека. Если Вы хотите получить монету, лежащую на дне, Вы должны убрать все монеты с более высоких уровней.
Альтернативное имя для стека (но только в терминологии IT) - LIFO. Это аббревиатура для очень четкого описания поведения стека: Last In - First Out. Монета, которая пришла последней в стек, уйдет первой.
Стек - это объект с двумя элементарными операциями, условно именуемыми push (когда новый элемент помещается сверху) и pop (когда существующий элемент убирается сверху).
Стеки очень часто используются во многих классических алгоритмах, и трудно представить реализацию многих широко используемых инструментов без использования стеков.
Давайте реализуем стек в Python. Это будет очень простой стек, и мы покажем Вам, как это сделать, используя два независимых подхода: процедурный и объектный.
Давайте начнем с первого.