Где применяется
1. Задача
Ты уже умеешь строить цепочки узлов и разрезать их. Теперь две новые структуры: стек и очередь. Их можно построить на такой цепочке или на обычном массиве. От списка их отличает одно правило: с какого конца класть и с какого брать. Этого правила хватает на удивление многим задачам.
Правило стека такое: кладёшь наверх и берёшь сверху. Из середины или снизу не берёшь никогда. Положи числа 1, 2, 3. Первым снимется 3, потом 2, потом 1. Это правило называют «последним вошёл, первым вышел» (по-английски LIFO). Оно нужно программам для истории отмены, кнопки «назад», проверки скобок и стека вызовов (списка функций, которые начали работу и ждут, пока закончат вызванные ими). Но сначала нужна сама структура: маленький класс с верхом, на который кладут (push) и с которого снимают (pop).
Этот шаг из платной части
Бесплатные шаги в начале курса (их 33) открыты всем: урок, задача и тесты. Этот шаг открывается с полным доступом. Начни с бесплатного аккаунта и бесплатных шагов.
Завести бесплатный аккаунтПосмотреть, что входитНа LeetCode
Задачи, где следующим нужен самый свежий элемент, например отменить последнее действие или убрать символ вместе с предыдущим. Кладёшь в стек и снимаешь сверху.
Каждая операция читает или убирает одну-две последние записи, это ровно push, pop и peek.
Клади каждую букву в стек, а если она равна верхней, снимай верхнюю вместо этого.
Звёздочка снимает последнюю сохранённую букву, а то, что осталось в стеке, и есть ответ.
Числа кладёшь в стек, а на каждом операторе снимаешь два, считаешь и кладёшь результат обратно.