EN
ES

Стек

Библиотека Айтигенио
14 июля 2026

Стек (Stack) — это структура данных, которая работает по принципу LIFO (Last In, First Out), что переводится как «последним пришел — первым вышел». Другими словами, элемент, который был добавлен в стек последним, будет извлечен первым.

Чтобы понять принцип работы стека, можно представить стопку книг на столе. Если вы кладете новую книгу сверху, то и забираете сначала верхнюю книгу. Достать книгу из середины стопки без перемещения остальных не получится. Точно так же работает стек в программировании.

Как устроен стек

У стека есть две основные операции:

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

Также часто используются дополнительные операции:

  • Peek (Top) — посмотреть верхний элемент без удаления.
  • IsEmpty — проверить, пуст ли стек.

Например, если последовательно добавить числа:

Push(1)
Push(2)
Push(3)

то стек будет выглядеть так:

3 ← вершина
2
1

После выполнения команды Pop() будет удалено число 3, потому что оно было добавлено последним.

Где используется стек

Стек — одна из самых важных структур данных в информатике. Многие процессы внутри компьютера работают именно благодаря ему.

Вызов функций

Когда программа запускает функцию, информация о ней помещается в специальный стек вызовов (Call Stack).

Например:

def a():
    b()

def b():
    c()

def c():
    print("Привет")

Сначала в стек помещается функция a(), затем b(), затем c().

После завершения работы функции удаляются из стека в обратном порядке:

c()
b()
a()

Именно поэтому программа всегда знает, куда нужно вернуться после выполнения очередной функции.

Рекурсия и стек

Особенно важен стек при использовании рекурсии — ситуации, когда функция вызывает саму себя.

Например:

def count(n):
    if n == 0:
        return
    count(n - 1)

Каждый новый вызов функции сохраняется в стеке. Если вызовов станет слишком много, стек переполнится.

Отсюда возникает известная ошибка:

Stack Overflow — переполнение стека.

Кстати, разобраться со структурами данных, алгоритмами и принципами работы программ поможет тренер по программированию на бесплатном занятии в международной онлайн-школе.

Стек в браузере

Когда в браузере выполняется JavaScript-код, он также использует стек вызовов.

Например:

function first() {
    second();
}

function second() {
    console.log("Hello");
}

first();

Во время выполнения функции последовательно помещаются в стек, а затем удаляются после завершения работы.

Именно на основе стека работают механизмы обработки событий, ошибок и выполнения кода в браузере.

Проверка скобок с помощью стека

Одна из классических задач на собеседованиях — проверка правильности расстановки скобок.

Например:

((()))

Алгоритм работает так:

  1. При открывающей скобке символ помещается в стек.
  2. При закрывающей скобке элемент извлекается.
  3. Если стек пуст в нужный момент или после проверки в нем остались элементы, значит скобки расставлены неправильно.

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

Получите до 5 уроков по программированию в подарок
  1. Запишите ребенка на первый пробный урок
  2. Оплатите пакет занятий в течение 24 часов
  3. Получите до 5 уроков в подарок

Отмена действий

Многие знакомые функции компьютера работают через стек. Например:

  • отмена действий в редакторе (Ctrl + Z);
  • история изменений документа;
  • возврат к предыдущему состоянию программы;
  • навигация по страницам браузера.

Каждое действие помещается в стек. При отмене программа берет последнее действие и отменяет именно его.

Преимущества стека

Стек имеет несколько важных достоинств:

  • простая реализация;
  • высокая скорость добавления и удаления элементов;
  • небольшой расход памяти;
  • удобство для хранения временных данных.

Из-за своей простоты стек используется практически во всех языках программирования и операционных системах.

Недостатки стека

У этой структуры данных есть и ограничения:

  • доступ возможен только к верхнему элементу;
  • нельзя быстро получить данные из середины структуры;
  • при большом количестве вложенных вызовов возможно переполнение стека.

Поэтому для некоторых задач используют другие структуры данных — очереди, списки, деревья или хеш-таблицы.

Чем стек отличается от очереди

Стек часто сравнивают с очередью.

Стек (Stack) работает по принципу: последний пришел → первый вышел.

Очередь (Queue) работает наоборот: первый пришел → первый вышел.

Если стек можно представить как стопку тарелок, то очередь больше напоминает очередь людей в магазине.

Итог

Стек — это базовая структура данных, в которой элементы обрабатываются по принципу «последним пришел — первым вышел». Он используется практически во всех областях программирования: при вызове функций, работе рекурсии, обработке кода браузером, отмене действий в программах и решении алгоритмических задач.

Понимание работы стека считается одним из фундаментальных навыков для любого программиста. Именно на этой структуре данных основаны многие механизмы современных языков программирования, операционных систем и приложений.

Заберите бесплатный урок с реальным учителем!

Даём знания уже на первом уроке.
Итог: крутой IT-проект!

Откройте мир IT для ребёнка на бесплатном уроке
  • Без продаж
  • С реальным
    учителем
  • Итоговый проект
    в конце урока