Пусть T -- некоторый тип. Рассмотрим (отсутствующий в паскале) тип << стек элементов типа T>>. Его значениями являются последовательности значений типа T.
Операции:
(Мы пользуемся обозначениями, наполняющими паскаль, хотя в паскале типа << стек>> нет.) Процедура << Сделать_пустым>> делает стек s пустым. Процедура << Добавить>> добавляет t в конец последовательности s. Процедура << Взять>> применима, если последовательность s непуста; она забирает из нее последний элемент, который становится значением переменной t. Выражение << Пуст(s)>> истинно, если последовательность s пуста. Выражение << Вершина(s)>> определено, если последовательность s непуста, и равно последнему элементу последовательности s.
Мы покажем, как моделировать стек в паскале и для чего он может быть нужен.