Работа со стеком. 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;
Товарищи, подскажите пожалуйста, есть код не могу понять как работает, как заполнять стек и далее по операциям описанным выше, я пытаюсь его заполнить а мне пишет что не верное количество аргументов. Подскажите кто разбирается? Излагаю задачу, может поможет в понимании:
Разработать подпрограммы операций функциональной спецификации стека при сплошном и цепном представлении (включая проверку на пустоту и просмотр содержимого стека).
Разработать демонстрационную программу работы со стеком с возможностью выбора формы физического представления и просмотра результатов операций.
Приму любую помощь. Благодарю заранее.