Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2007, 18:53   #1
Dr.zlo
 
Регистрация: 26.02.2007
Сообщений: 8
Вопрос Стек

Что такое стек, кто знает объясните поподрабней.
Dr.zlo вне форума Ответить с цитированием
Старый 07.07.2007, 22:03   #2
Димарик
Пользователь
 
Аватар для Димарик
 
Регистрация: 15.06.2007
Сообщений: 40
По умолчанию

своеобразный контейнер
Димарик вне форума Ответить с цитированием
Старый 07.07.2007, 23:05   #3
Dr.zlo
 
Регистрация: 26.02.2007
Сообщений: 8
Сообщение

Он что в себе чтото хранит
Dr.zlo вне форума Ответить с цитированием
Старый 07.07.2007, 23:22   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Стек служит для хранения динамических данных.
Тип объекта - стек - можно представить как наследника объекта Tlist, т.е. это список.
Alex21 вне форума Ответить с цитированием
Старый 08.07.2007, 01:04   #5
Dr.zlo
 
Регистрация: 26.02.2007
Сообщений: 8
Сообщение

Спасибо, тема закрыта.
Dr.zlo вне форума Ответить с цитированием
Старый 08.07.2007, 17:51   #6
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Мда... Тема вообще не раскрыта!
Код:
              Организация стека в определенном смысле противоположна орга-
         низации очереди,  поскольку здесь используется доступ по принципу
         "последней пошел, первый вышел" /такой метод доступа иногда назы-
         вают методом LIFO/. Представим себе стопку тарелок. Нижняя тарел-
         ка из этой стопки будет использована последней, а верхняя тарелка
         /которая  была установлена в стопку последней/ будет использована
         первой. Стеки широко используются в системном программном обеспе-
         чении, включая компиляторы и интерпретаторы.
              Исторически сложилось так,  что две  основные  операции  для
         стека  -  поместить в стек и выбрать из стека - получили название
         соответственно "затолкнуть" и "вытолкнуть".  Поэтому для реализа-
         ции  стека  необходимо создать две функции:  "posh" /затолкнуть/,
         которая помещает элемент в вершину стека,  и "pop" / вытолкнуть/,
         которая выбирает из вершины стека значение. Необходимо также пре-
         дусмотреть определенную область в памяти,  где  фактически  будет
         храниться стек. Для этого можно использовать массив или можно вы-
         делить область памяти, используя средство динамического распреде-
         ления  памяти,  предусмотренное в языке Турбо Паскаль.  Как и при
         работе с очередью при выборке значения из стека элемент будет по-
         терян,  если его не сохранить гденибудь в памяти. Ниже приводится
         общая форма процедур установки в стек и выборки из стека.
              const
                MAX = 100;

              var
                stack:array[1..100] of integer;
                tos:integer; {points to top of stask}

              { помещение объекта в стек }
              procedure Push(i:integer);
              begin
                if tos>=MAX then WriteLn('Stask full')
                else
                begin
                  stack[tos]:=i;
                  tos:=tos+1;
                end;
              end; { конец  процедуры  помещения объекта в стек}

              { выборка объекта из стека }
              function Pop:integer;

              begin
                tos:=tos-1;
                if tos<1 then
                begin
                  WriteLn('Stack underflow');
                  tos:=tos+1;
                  Pop:=0;
                end
                else Pop := stack[tos];
              end; { конец функции выборки объекта из стека }

              Переменная "tos" содержит значение  индекса  для  следующего
         помещаемого в стек элемента. При реализации этих процедур никогда
         нельзя забывать о проверке ситуаций переполнения стека  и выборки
         из пустого стека.  В приведенных процедурах нулевое значение ука-
         зателя "tos" означает, что стек пуст, а значение этого указателя,
         равное или превышающее адрес последней ячейки памяти,  где содер-
         жится стек,  означает заполнение стека. Рис.7 иллюстрирует работу
         стека.
              Операция                   Содержимое стека
              Push(A)                    A
              Push(B)                    B A
              Push(C)                    C B A
              Pop, выбирается С          В А
              Push(F)                    F B A
              Pop, выбирается F          B A
              Pop, выбирается В          А
              Рор, выбирается А           пусто
              Рис.7. Работа стека.


(с)Энциклопедия по Турбо-Паскалю (Часть 1)
zetrix вне форума Ответить с цитированием
Старый 09.07.2007, 07:59   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Смотря в каком аспекте рассматривать понятие стека, если в общем то zetrix полностью прав. Но название раздела почему-то тогда вызывает недоумение
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек и очередь. (Delphi) Olgasato Помощь студентам 8 02.04.2010 08:08
про СТЕК anco Паскаль, Turbo Pascal, PascalABC.NET 5 06.07.2008 22:29
что такое стек?Отзовитесь,люди Еленка Помощь студентам 5 08.06.2008 13:39
Стек Еленка Помощь студентам 2 06.06.2008 18:58
Стек Foky Паскаль, Turbo Pascal, PascalABC.NET 8 13.05.2008 18:39