Стек (Stack)
Структура данных «последним пришёл — первым вышел» (LIFO), как стопка книг или тарелок.
Как работает стек
В стек можно класть элементы только сверху (операция push) и забирать тоже только сверху (операция pop). Нельзя сразу взять элемент из середины — сначала нужно снять все, что выше него.
Основные операции:
- push — положить элемент на вершину;
- pop — снять элемент с вершины;
- top / peek — посмотреть верхний элемент, не удаляя его.
Плюсы
- Очень простая и быстрая структура данных;
- Операции занимают O(1) времени;
- Используется повсюду: в рекурсии, отмене действий (undo), парсинге скобок и т.д.
Минусы
- Доступ только к верхнему элементу;
- Не подходит, если нужно быстро находить произвольный элемент.
Пример реализации стека
class Stack {
constructor() {
this.items = [];
}
push(x) {
this.items.push(x);
}
pop() {
return this.items.pop() ?? null;
}
peek() {
return this.items.length ? this.items[this.items.length - 1] : null;
}
}Попробуй самостоятельно написать алгоритм, а затем сравнить
Полезные темы
Рекомендуем изучить эти темы для лучшего понимания