Основы программирования. Указатели. Динамические структуры данных. Абстрактные типы данных. Классы - 29 стр.

UptoLike

Составители: 

31
ли стек. Очевидно, при выполнении операций Pop и Top стек должен быть не-
пустым, что контролируется вызовом процедуры Assert.
Реализация АТД «Стек» на базе массива
Реализуем АТД «Стек» в виде модуля. Модули являются удобным языковым
средством для создания АТД, поскольку содержат секции интерфейса и реализа-
ции. Интерфейс стека поместим в интерфейсную секцию модуля, а реализацию
в секцию реализации модуля.
Элементы стека будем хранить в целочисленном массиве, индексируемом от
нуля. Индекс верхнего элемента стека будем хранить в
переменной t. Если t=-1,
то это означает, что стек пуст. Поскольку стек реализован на базе массива фикси-
рованного размера, то при выполнении операции Push он может переполниться.
Эта особая ситуация контролируется при помощи вызова процедуры Assert.
Далее приводится текст модуля IntStack, реализующего стек целых чисел.
unit IntStack;
interface
procedure Push(i: integer);
function Pop: integer;
function
Top: integer;
function IsEmpty: boolean;
implementation
const sz=1000;
var
a: array [0..sz-1] of integer;
t: integer;
procedure Push(i: integer);
begin
Inc(t);
Assert(t<=sz);
a[t]:=i;
end;
function Pop: integer;
begin
Assert(not IsEmpty);
Result:=a[t];
Dec(t);
end;
function Top: integer;
begin
Assert(not IsEmpty);
Result:=a[t]