PROGRAM INF92(INPUT,OUTPUT); TYPE STACKREF=^ELEM; ELEM=RECORD INFO:INTEGER; NEXT:STACKREF END; VAR TOS,FREI:STACKREF;(*ÔOP ÏF ÓTACK UND ÆREILISTENANFANG*) I,Z:INTEGER; PROCEDURE PUSH(X:INTEGER); VAR Q:STACKREF; BEGIN IF FREI=NIL THEN NEW(Q) ELSE BEGIN Q:=FREI; FREI:=FREI^.NEXT END; Q^.INFO:=X; Q^.NEXT:=TOS; TOS:=Q END;(*PUSH*) PROCEDURE PULL(VAR X:INTEGER); VAR Q:STACKREF; BEGIN IF TOS=NIL THEN BEGIN WRITELN("ÓTACK IST LEER!"); X:=0 END ELSE BEGIN X:=TOS^.INFO; Q:=TOS; TOS:=TOS^.NEXT; Q^.NEXT:=FREI; FREI:=Q END END;(*PULL*) BEGIN TOS:=NIL;FREI:=NIL;(*ÉNITIALISIERUNG ÓTACK UND ÆREILISTE*) FOR I:=1 TO 10 DO BEGIN WRITE(I:5);PUSH(I) END; WRITELN; FOR I:=1 TO 11 DO BEGIN PULL(Z);WRITE(Z:5) END; WRITELN; END.