Работа со стеком: каждая операция создание,удаление, добавление,показ элементов стека разделены на отдельные процедуры — Pascal(Паскаль)

type
 pr=^el;
 el=record
 inform:string;
 go:pr;
 end;

var
 top:pr;
 n,i:integer;
 infa,str:string;

procedure nachalo;
begin
top:=nil;
end;

procedure push(val:string);
var p:pr;
begin
new(p);
p^.inform:=val;
p^.go:=top;
top:=p;
end;

procedure pokaz_el;
var p,p2:pr;
begin
p:=top;
while p<>nil do
begin
infa:=p^.inform;
writeln(infa);
p2:=p;
p:=p2^.go;
end;
end;

procedure pop(var val:string);
var p:pr;
begin
val:=top^.inform;
p:=top;
top:=p^.go;
dispose(p);
end;

begin
nachalo;
writeln('Input 7 strok do 20 simvolov');
for i:=1 to 7 do
 begin
 readln(str);
 push(str);
 end;
writeln('Элементы стека:');
pokaz_el;
writeln('Сколько элементов удалить?');
readln(n);
if (n>=1)and(n<=7)then
begin
for i:=1 to n do
begin
pop(str);
writeln('Удалена строка:',str);
end
end
else writeln('Ввели неверное значение, пока..');
end.

Leave a Comment

28 − 26 =