Sunteți pe pagina 1din 2

Program P127;

type AdresaCelula=^Celula;
Celula=record
Info : integer;
Prec : AdresaCelula;
end;
var S : AdresaCelula;
i,n,max1 : integer;
c : char;
procedure Introduc;
var R : AdresaCelula;
begin
new(R);
write('Dati elementul ce urmeaza');
writeln(' sa fie introdus:');
readln(R^.Info);
R^.Prec:=S;
S:=R;
end;

procedure Extrag;
var R : AdresaCelula;
begin
if S=nil then writeln('Stiva este vida')
else begin
R:=S;
write('Este extras');
writeln(' elementul:');
writeln(R^.Info);
S:=S^.Prec;
dispose(R);
end;

end;
procedure Afis;
var R : AdresaCelula;
begin
if S=nil then writeln('Stiva este vida')
else begin
writeln('Stiva include elementele:');
R:=S;
while R<>nil do begin
writeln(R^.Info);
R:=R^.Prec;
end;
end;
readln;
end;
Procedure Maxim;
Var R : AdresaCelula;
i : integer;
begin
R:= R^.Prec;
max1 := R^.Info;
for i:=1 to n do
if max1<R^.Info then max1:=R^.Info;
writeln('Max:',max1);
end;
begin
S:=nil;
repeat
writeln('Meniu:');
writeln('I - Introducerea elementului');
writeln('Max - Elementul maxim din stiva este:');
writeln('Min - Elementul minim din stiva este:');
writeln('E - Extragerea elementului');
writeln('A - Afisarea stivei pe ecran');
writeln('O - Oprirea programului');
write('Optiunea='); readln(c);
case c of
'I' : Introduc;
'M': Maxim;
'E' : Extrag;
'A' : Afis;
'O' :
else writeln('Optiune necunoscuta')
end;
until c='O';
end.

S-ar putea să vă placă și