TwiddleLab / Код / Структуры данных, которые видно
Стеки: последним пришёл, первым вышел
Что ты узнаешь
- Стек хранит вещи стопкой: добавляешь сверху и берёшь сверху.
- Push кладёт элемент наверх; pop снимает верхний. Последним пришёл, первым вышел (LIFO).
- В Python список это стек: s.append(x) кладёт, s.pop() снимает последний элемент.
- Отмена, кнопка «Назад» и парные скобки работают на стеке.
Как идёт урок
Печатаешь, удаляешь, вставляешь, потом жмёшь «Отменить». Откуда приложение знает, что отменять?
Сначала отредактируй эту заметку своими руками. Сделай четыре действия в любом порядке.
Нажимаешь «Отменить» один раз. Какое действие исчезнет?
Вот они вперемешку. Нажми на свою ставку.
Нажми «Отменить» три раза.
Каждое действие это тарелка в стопке. Смотри, какая тарелка снимается.
Каждое действие кладётся наверх стопки, когда его делают. «Отменить» всегда берёт сверху, поэтому первым отменяет самое последнее действие.
Эта стопка это стек.
Стек это стопка: трогаешь только верх.
Push кладёт элемент наверх. Pop снимает верхний. Последним пришёл, первым вышел: LIFO.
В Python обычный список работает как стек: s.append(x) кладёт, s.pop() снимает последний элемент и отдаёт его.
Башня из тарелок.
Клади и снимай, пока стек не совпадёт с целью. Постарайся уложиться в норму.
Теперь та же стопка на Python.
Пройди код по шагам. Перед каждым pop нажми на тарелку, которая, по-твоему, уйдёт.
Список Python растёт с конца, а pop() без числа убирает последний элемент. Поэтому конец списка это верх стека.
Скоростной раунд: в каком порядке уходят тарелки?
Четыре раунда. Нажимай на тарелки в том порядке, в каком их забирают pop.
Каждый pop убирает самый последний push, который ещё не сняли. В раунде 4: уходит C, потом D (только что положили), потом B, потом E, потом A с самого низа.
Следующий урок: Очередь: первым пришёл, первым ушёл · Часть курса: Структуры данных, которые видно
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.