Stack
Stack (cтек) — это линейная структура данных, которая следует принципу «последним пришел__, первым вышел» (LIFO). Это означает, что последний элемент, вставленный в стек, удаляется первым.
Мы можем думать о структуре данных стека как о куче пластин, расположенных одна поверх другой.
Здесь можно::
-
поставить сверху новую пластину;
-
снять верхнюю пластину.
Если тебе нужна пластина снизу, ты должен сначала удалить все пластины сверху. Именно так работает стек.
Принцип стека LIFO
В терминах программирования размещение элемента на вершине стека называется push, а удаление элемента — pop.
На изображении выше, хотя элемент 3 был сохранен последним, его удалили первым. Именно так работает принцип LIFO (Last In First Out).
Мы можем реализовать стек на любом языке программирования, например на C, C++, Java, Python, C# или Golang — спецификация будет практически одинаковой.
Основные операции стека
Есть несколько основных операций, которые позволяют нам выполнять различные действия со стеком.
-
Push — добавить элемент в верхнюю часть стека.
-
Pop — удалить элемент из вершины стека.
-
IsEmpty — проверить, пуст ли стек.
-
IsFull — проверить, заполнен ли стек.
-
Peek — получить значение верхнего элемента, не удаляя его.