Моделирование ограниченного стека в массиве

Будем считать, что количество элементов в стеке не превосходит некоторого числа n. Тогда стек можно моделировать с  помощью двух переменных:

        Содержание: array [1..n] of T;
        Длина: integer;
считая, что в стеке находятся элементы
        Содержание [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;



pvv
1/8/1999