Будем считать, что количество элементов в стеке не превосходит некоторого числа 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;