Стек в программировании — это упорядоченная структура данных, которая работает по принципу «последним пришёл, первым вышел» (LIFO). skillbox.ru kedu.ru Это значит, что последний элемент, добавленный в стек, будет взят из него первым. skillbox.ru Добавлять новые элементы и удалять существующие из стека можно только с одного конца, который называется вершиной. skillbox.ru
Некоторые области применения стеков в программировании:
Есть два вида стека:
- Стек вызовов. skillbox.ru thecode.media Это структура данных, которая управляет вызовами функций во время выполнения программы. skillbox.ru Когда компьютер выполняет программу и доходит до вызова какой-то функции, ему нужно ненадолго переключиться, чтобы эту самую функцию выполнить. skillbox.ru Чтобы запомнить, где он остановился, компьютер сохраняет в памяти специальные закладки — так называемые точки перехода. skillbox.ru Область памяти, где хранятся точки перехода, и называется стеком вызовов. skillbox.ru
- Стек данных. skillbox.ru thecode.media Этот вид стеков часто используют для работы с разветвлёнными типами данных: деревьями, графами, XML-документами, JSON-объектами и другими. skillbox.ru Например, стеки данных хорошо подходят для обхода деревьев в глубину — когда нужно посетить все узлы дерева, чтобы сделать с ними что-то, скажем, вывести все значения. skillbox.ru