| Код | uses crt; type PSTRC=^Strc; Strc=record inf:integer; ptr:Pstrc; end; var S1,s2:PSTRC; i,k,g,p:integer; err:boolean; a:array [1..20] of integer; Procedure Dop(var S:Pstrc;dat:integer); var nov:Pstrc; begin New(nov); nov^.inf:=dat; nov^.Ptr:=s; S:=nov; end; Function Ud(var S:Pstrc; var err:boolean):integer; var old:Pstrc; begin if s<>Nil then begin old:=S; S:=S^.ptr; Ud:=old^.inf; dispose(old); err:=false end else begin Ud:=0; err:=true end end; Function Cht(s:PSTRC; var err:boolean):integer; begin if s<>Nil then begin write('inf=',s^.inf:3); err:=false; Cht:=s^.inf; end else begin writeln('stack pust'); err:=True; cht:=0; end; end; BEGIN clrscr; i:=1; k:=1; while k<>0 do begin readln(k); Dop(s1,k); end; while s1<>Nil do begin a[i]:=Ud(s1,err); inc(i); end; for k:=i downto 1 do dop(s2,a[k]); for k:=1 to i do writeln(ud(s2,err)); readln; END.
|
|