Работа со стеком. PASCAL

Type UKAZ=^STK;
STK=record
info: integer;
next: UKAZ {указатель на предыдущий элемент стека – следующий элемент цепочки}
end;
Var Top, NE, Kon: UKAZ; value: integer;

Procedure Sozd_St;
BEGIN
Top:=Nil;
END;

Procedure Dobav_St;
BEGIN
New(NE);
NE^.next:=Top;
NE^.info:= value;
Top:= NE
END;

Procedure Udal_St;
BEGIN
Kon:= Top; {Для сохранения доступа к фрагменту памяти, занимаемому удаляемым эле-ментом. }
Top:=Top^.next;
Dispose(Kon) {Возврат памяти в «кучу»}
END;

Function Last (S:UKAZ; Var ERR: boolean): integer;
BEGIN
If S=Nil then begin
Writeln(‘стек пуст’); err:=true;
Exit
end
else begin {чтение успешно}
write(‘вершина=’, S^.info:4);
err:=false;
Last:= S^.info
end
END;

Procedure Cont_St;
{вывод элементов в обратном порядке}
BEGIN
Kon:= Top;
while Kon<>Nil do
begin
writeln(Kon^.info);
Kon :=Kon^.next
end
END;

Товарищи, подскажите пожалуйста, есть код не могу понять как работает, как заполнять стек и далее по операциям описанным выше, я пытаюсь его заполнить а мне пишет что не верное количество аргументов. Подскажите кто разбирается? Излагаю задачу, может поможет в понимании:

  1. Разработать подпрограммы операций функциональной спецификации стека при сплошном и цепном представлении (включая проверку на пустоту и просмотр содержимого стека).

  2. Разработать демонстрационную программу работы со стеком с возможностью выбора формы физического представления и просмотра результатов операций.

Приму любую помощь. Благодарю заранее.


Ответы (0 шт):