Стек

Стек это структура данных которая работает по-принципу LIFO (last in first out - последний пришел, первый ушел). Визуально можно представить стек как стопку тарелок. Мы не можем взять нижнюю тарелку, мы сперва должны взять все тарелки которые стоят выше. Соотвественно если мы поставим сверху новую тарелку, то ее же первой и может взять. Она была поставлена (пришла) последней, но возьмем мы ее первой.

Как правильно стек имеет две основные функции это Push и Pop. 

Push - добавить в стек 

Pop - извлечь со стека

Иногда еще используют Peek  - это взять объект с вершины стека, но не удалять его 

 

Стек используется при обходе в глубину

Также стек используется для организации стека вызовов (call stack) при исполнении программ.