Readln(el);
Begin
End;
End;
Exit
Begin
If Sempty(Vstek) Then
Begin
End;
Begin
End;
End;
Exit
Begin
Begin
End;
End;
Exit
Begin
writeln('Стек пустой');
el:=S[Vstek];
Vstek:=Vstek-1 {уменьшить индекс вершины стека}
Создавая стек с помощью массива, следует, что состояние стека может не соответствовать состоянию массива его описывающего, поскольку при удалении элемента из стека, он не удаляется из массива, а просто меняется значение указателя вершины стека.
Пример.Постройте с помощью массива стек из пяти строковых элементов. Разместите в стеке пять элементов: ‘kk’, ‘ll’, ‘mm’, ‘nn’, ‘pp’. Удалите из стека два элемента ‘nn’ и ‘pp’ и добавьте новый элемент ‘rr’.
Type Stek=array[1..maxs] of string;
Var i,Vstek:integer;
S:Stek;
el:string;
Procedure AddST(Var S:stek; Var Vstek:integer; Var el:string);
if Vstek=maxs then
writeln('Переполнение стека');
Vstek:=Vstek+1;
S[Vstek]:=el
Function Sempty(Vstek:integer):boolean;
if Vstek=0 then Sempty:=true
else Sempty:=false
Procedure EdelSt (Var S:stek; Var Vstek:integer; var el:string);
writeln('Стек пустой');
el:=S[Vstek];
Vstek:=Vstek-1
BEGIN {основная программа}
Vstek:=0; {}
for i:=1 to 5 do {добавить элементы}
Write('dEl=');