Skip to content

Stack

Stack (cтек) — это линейная структура данных, которая следует принципу «последним пришел__, первым вышел» (LIFO). Это означает, что последний элемент, вставленный в стек, удаляется первым.

Мы можем думать о структуре данных стека как о куче пластин, расположенных одна поверх другой.

Здесь можно::

  • поставить сверху новую пластину;

  • снять верхнюю пластину.

Если тебе нужна пластина снизу, ты должен сначала удалить все пластины сверху. Именно так работает стек.

Принцип стека LIFO

В терминах программирования размещение элемента на вершине стека называется push, а удаление элемента — pop.

На изображении выше, хотя элемент 3 был сохранен последним, его удалили первым. Именно так работает принцип LIFO (Last In First Out).

Мы можем реализовать стек на любом языке программирования, например на C, C++, Java, Python, C# или Golang — спецификация будет практически одинаковой.

Основные операции стека

Есть несколько основных операций, которые позволяют нам выполнять различные действия со стеком.

  • Push — добавить элемент в верхнюю часть стека.

  • Pop — удалить элемент из вершины стека.

  • IsEmpty — проверить, пуст ли стек.

  • IsFull — проверить, заполнен ли стек.

  • Peek — получить значение верхнего элемента, не удаляя его.