Закрепление материала: Стек

Модуль "Стек" • урок 7 из 8 • ~5 минут

Суть урока. Повторяем ключевые концепции модуля. Стек - это структура LIFO, инвертирующая порядок. Она лежит в основе обратной польской записи, управления памятью при вызове функций и обработки рекурсии. Физически стек легко реализуется как на массиве (быстро, но есть лимит), так и на динамических узлах (чуть медленнее, но без лимита).
Итоги модуля: стек на массиве работает без лишней памяти, но с жестким лимитом, а стек на связном списке не ограничен размером ценой указателя в каждом узле
Два физических представления стека и цена каждого

Краткое резюме модуля

В этом модуле мы подробно рассмотрели структуру данных Стек, изучив ее от абстрактной математической спецификации до аппаратной реализации в процессорах:

Ключевые идеи

Коротко: главное

  • LIFO: Last In - First Out.
  • Семь операций: СОЗДАТЬ, ПУСТО, ГЛУБИНА, В_СТЕК, ИЗ_СТЕКА, ВЕРХ, УНИЧТОЖИТЬ.
  • ОПЗ: Модель вычислений, где стек служит рабочей зоной для промежуточных результатов.
  • Кадр стека: Хранит локальные переменные, параметры и адрес возврата при рекурсии. Любую рекурсию можно заменить циклом и явным стеком.

Проверьте себя

Вопрос 1

Как выполняется операция (например, умножение) при разборе выражения в обратной польской записи?

Вопрос 2

В чем главное преимущество стека на связном списке (с динамическим выделением узлов) перед стеком на статическом массиве?

Вопрос 3

Что обязательно сохраняется в аппаратном стеке (в кадре вызова) при вызове рекурсивной функции?

Как вам урок? Спасибо за отзыв!