Стек является методом "последним пришел - первым вышел" (LIFO) абстрактный тип данных и структура данных. Для вопросов о стеке вызовов используйте [стек вызовов] или [указатель вершины стека] вместо этого. Для вопросов об инструменте сборки Haskell используйте [haskell-складывают] вместо этого.

Стек является структурой данных, часто используемой в качестве абстрактного типа данных (ADT) на многих языках программирования, чтобы хранить данные в методе "последним пришел - первым вышел" (LIFO) способ. Вы могли вообразить это как стопка карт. Если Вы поместите карту на вершину стека и затем возьмете главную карту от стека, то Вы получите ту же карту, которую Вы помещаете на него.

Помещение данных на стек называют, продвигая. Взятие чего-то от стека называют, появляясь. Проверку, что сверху стека, не удаляя его, называют, посмотрев.

Вот пример программы:

a = new stack() a.push(5) b = a.peek() print(b) a.push(6) b = a.pop() print(b) b = a.pop() print(b) 

дал бы вывод:

5 6 5 

является структурой данных стека, которую это используется для отслеживания локальные переменные и позволяет легкие вызовы вложенной функции (включая для рекурсивных функций). Текущая вершина стека обычно прослеживается специализированным регистром . Различные архитектуры ЦП и соглашения о вызовах управляют стеком по-другому, но распространено продвинуть обратный адрес как часть вызывания функции. Возврат выталкивает обратный адрес и переходы к нему, позволяя функции возвратиться к тому, везде, откуда это назвали.

Связанные теги: