Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Владислав Порохин Знаток (388), закрыт 8 лет назад
Что такое стек и каков принцип организации данных в нём? Для чего он нужен? Чем стек отличается от других конструкций для хранения данных (структуры, массивы и т. д.)? В книге, по которой изучаю С++, чёткого определения нет, в вики написано не очень понятно.
Лучший ответ
Максим Профи (862) 8 лет назад
Стек это своего рода контейнер, работающий по принципу "Первый вошёл, последний вышел" или "Последний вошёл, первый вышел", т. е. по принципу магазина: в обойму ты вставляешь сверху, взять ты тоже можешь только верхний. Чтобы получить доступ к нижнему патрону, ты должен извлечь все остальные. Использовать можно его следующем образом. Например, тебе нужно отсортировать числа (вне массива) и вывести их на экран. Ищешь наибольший элемент, помещаешь в стэк, затем ещё раз отыскиваешь и снова в стэк, и так пока он не будет заполнен. Затем ты в цикле извлекаешь элемент из стека, и выводишь его на экран, пока стек не опустеет.
Остальные ответы
пишу гадости Мыслитель (5112) 8 лет назад
Стек в процессоре хранит информацию для возврата в предыдущую точку, это тебе пригодиться только если асм будешь изучать, или низкоуровневую отладку через дебагер.
Виктор АдаменяИскусственный Интеллект (134515) 8 лет назад
и совсем не гадость написали))
Создатель Бога Мыслитель (8933) 8 лет назад
Работает по принципу последний зашел - первый вышел, как обойма пистолета.
maks Мудрец (10951) 8 лет назад
Стек (от англ. stack — стопка) — структура данных, представляющая из себя упорядоченный набор элементов, в которой добавление новых элементов и удаление существующих производится с одного конца, называемого вершиной стека. При том первым из стека удаляется элемент, который был помещен туда последним, то есть в стеке реализуется стратегия «последним вошел — первым вышел» (last-in, first-out — LIFO). Примером стека в реально жизни может являться стопка тарелок : когда мы хотим вытащить тарелку, мы должны снять все тарелки выше
Вставка, удаление за O(1), поиск за O(n) по времени.
Реализовывать можно по разному.
Project XМастер (1697) 8 лет назад
Это когда в программе вызывается процедура, идёт переход к процедуре и чтобы компьютер запомнил как вернутся обратно после выполнения процедуры он записывает в специальное место в памяти адресс кода откуда вызвана была процедура, это стёк
Project X Мастер (1697) 8 лет назад
Это когда в программе вызывается процедура, идёт переход к процедуре и чтобы компьютер запомнил как вернутся обратно после выполнения процедуры он записывает в специальное место в памяти адресс кода откуда вызвана была процедура, это стёк
Игорь ВалевачЗнаток (257) 6 лет назад
Стёк)))
Jurijus Zaksas Искусственный Интеллект (424962) 8 лет назад
Представь себе магазин для автомата. Ты можешь вставить патрон, можешь вынуть. Но что характерно, вставить патрон можно только сверху, и вынуть - тоже только верхний патрон. Это и есть стек. Только в компьютере в нем хранятся не патроны, а данные. Есть стек процессора, в котором принято хранить состояния регистров при входе в подпрограмму и восстанавливать их из стека после возвращения из нее. Это позволяет в случае, когда одна подпрограмма вызывает другую, восстановить регистры в правильном порядке. Программные же стеки представляют из себя динамические структуры данных, организованные в виде односвязного списка, в котором добавление и удаление всегда осуществляется с начала списка.
Виктор Адаменя Искусственный Интеллект (134515) 8 лет назад
Стэк это очередь прослеженная в обратном порядке. От английского to stack распологать одно над другим. В русском переводе особенно советские переводчики использовали понятие магазин. Кстати в сопроцессоре математическом реализован принцип револьвера. Еще другое понятие структура типа LIFO last in first out. Чтобы проще понять стопка купюр в кассе так вот последнию достают первой. Это просто все делаеться резервируеться память и она указывает на самый верх стека скажем 1000 байт на самый последний а потом уменьшаеться вершина по мере загрузки элементов.
Похожие вопросы