Будем считать, что количество элементов в стеке не превосходит некоторого числа n. Тогда стек можно моделировать с помощью двух переменных:
Содержание: array [1..n] of T; Длина: integer;считая, что в стеке находятся элементы
Содержание [1],...,Содержание [Длина].
Длина := 0
{Длина < n} Длина := Длина+1; Содержание [Длина] :=t;
t := Содержание [Длина]; Длина := Длина - 1;
Таким образом, вместо переменной типа стек в программе на паскале можно использовать две переменные Содержание и Длина. Можно также определить тип stack, записав
const N = ... type stack = record | Содержание: array [1..N] of T; | Длина: integer; end;(Мы позволяем себе использовать имена переменных из русских букв, хотя обычно паскаль этого не любит.) После этого могут быть -- в соответствии с правилами паскаля -- описаны процедуры работы со стеком. Например, можно написать
procedure Добавить (t: T; var s: stack); begin | {s.Длина < N} | s.Длина := s.Длина + 1; | s.Содержание [s.Длина] := t; end;