Что такое стек? Что такое стек в программировании?

Что такое стек? 

Что такое стек в программировании?

В программировании стек - это способ организации данных (в некоторых языках программирования - структура данных), в которой использован принцип "последний пришел - первый ушел".

Часто используется в динамических структурах, а также при написании компиляторов.

Для наглядного представления стека можно использовать колодец. Тот предмет, что положили в колодец последним - достанут первым, поскольку он будет снаружи и будет закрывать доступ к предметам под собой. 



Стек (стэк), это элемент или термин в программировании, дословный перевод с языка произошедшего данного слово означает **"стопка**"

Данный элемент в программировании используется для визуального отображения скажем строк, чисел или файлов в последовательности поступления, при котором первая отображаемая строка исчезает, в место него встает вторая, когда приходит новая строка, вставая в ряд последним. 

Для наглядности обратите внимание, когда вы пишете ответы на вопросы с увеличение текста в ответе происходит именно такой порядок вытеснения первой строки и вместо нее встает вторая строка и так далее. 

Для нас это уже как должное, но как вы понимаете, это серьезный термин в программировании.



Стек это структура данных, которая используется для хранения информации в случае приостановки обработки, чтобы в будущем продолжить с этого места, например рекурсивные функции или вызов подпрограммы, перед вызовом все данные записываются в стэк, и это может повторяться много раз потом, по окончанию очередной обработки,следует возврат - данные извлекаются.

> 
> 

Стэк представляет собой объект имеющий массив для хранения данных и как минимум два метода **push** - добавить в стэк и **pop** - извлечь из стэка.

Чем больше глубина вызова, тем больше элементов в стэке.

Стэк можно сравнить с работником, которому дают более срочную работу и он откладывает то что делал поверх предыдущих, а когда выполнил текущую, то приступает к последней отложенной, лежащей сверху.

---

![image](/?qa=blob&qa_blobid=13380947663549103572 "Что такое стек? Что такое стек в программировании?")


Это такой тип данных который представляет из себя набор элементов "Последним пришёл — первым вышел". Сравнивают с какой либо стопкой чего нибудь, что нужно взять первую вещь в ней, чтобы взять следующую. Вот так



Стек - это область памяти, выделенная системой для каких-то служебных операций. Например в языке программирования Бейсике в стеке находятся строки, куда нужно вернуться после оператора Return. Заносятся туда номера строк когда выполняется команда Gosub. Обычно стек размещают в конце выделенной для программы памяти. В ассемблере оператору Gosub соответствует команда Call, а команде Return команда Ret. Лично для меня это было открытием, но однажды я вычитал, что значения регистров 16-разрядного процесса тоже хранятся где-то в стеке.



Есть понятие стек вызовов в 1С. Это когда одна процедура вызывается из другой процедуры. Такие вызовы могут происходить много раз, при этом после отработки вызываемой процедуры происходит возврат в точку, откуда была вызвана эта процедура. Возможен вызов вложенных процедур, то есть из первой вызывается вторая, из второй третья и так может повторяться много раз. В реальных модулях 1С происходят вызовы до 15 процедур друг из друга.



Слово "стек" берет своё начало от английского слова "stack", которое переводится как стопка.

В программировании под "стеком" понимается некий упорядоченный набор элементов, в котором удаление существующих элементов и размещение новых осуществляется с одного конца: так называемой вершины.

Вот как это выглядит в графическом отображении: 

---

![image](/?qa=blob&qa_blobid=9057195768224544407 "Что такое стек? Что такое стек в программировании?")


Стек простым языком (для программирования) - это когда ты можешь класть в свою структуру условно говоря только наверх и доставать только сверху, то есть если ты положил в структуру объект А, а потом объект Б, то функция "достать" вернёт тебе сначала объект Б, а только потом А и достать А никак нельзя до того, как достанешь Б.



От английского stack и произошло слово стек - стопка. Термин используемый в программировании, набор элементов по принципу LIFO. Типа контейнера, его еще сравнивают с обоймой пистолета, потому что принцип действия очень похож.



Стек - от английского слова stack — стопка. Это такая конструкция, часто используемая в программировании, организация структуры данных, которая построена по методу доступа последним пришёл - и первым вышел.