Работа со стеками
Стек — список с одной точкой доступа к его элементам, которая называется вершиной стека. Добавить или убрать элемент можно только через его вершину. Принцип работы стека — LIFO (Last In First Out) — последним пришел, первым ушел. Схема работы со стеком:
Type Ukaz = ^ Stack; Stack = Record Inf:Integer; { информационная часть } Next: Ukaz { дополнительная часть } End; Var Versh, Rab: Ukaz; Value: Integer;
Procedure Sozd _ Stack; { первоначальная организация стека } Begin Versh:= Nil; While True do Begin Read (Value); If Value = 999 then Exit; New (Rab); Rab ^. Next:= Versh; Rab ^. Inf:= Value; Versh:= Rab End End;
Procedure Dobavl _ Stack; { добавление элементов в стек } Begin While True do Begin Read (Value); If Value = 999 then Exit; New (Rab); Rab ^. Next:= Versh; Rab ^. Inf:= Value; Versh:= Rab End End;
Procedure Udal _ Stack; { Удаление последнего элемента стека } Begin Rab:= Versh; Versh:= Versh ^. Next; Dispose (Rab) End;
Procedure Print _ Stack; { Обработка (вывод) элементов стека } Begin Rab:= Versh; While Rab <> Nil do Begin WriteLn (Rab ^. Inf); Rab:= Rab ^. Next End End;
|