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=');