PROGRAM ORDER(INPUT,OUTPUT); TYPE PTR=^NODE; NODE= RECORD INFO:CHAR; LLINK,RLINK:PTR END; VAR ROOT:PTR;CH:CHAR; PROCEDURE ENTER(VAR P:PTR); BEGIN READ(CH); IF CH<>"." THEN BEGIN NEW(P); P^.INFO:=CH; ENTER(P^.LLINK); ENTER(P^.RLINK); END ELSE P:=NIL END;(*ENTER*) PROCEDURE POSTORDER(P:PTR); LABEL 1,3; VAR S:ARRAY[0..20]OF PTR; SP:INTEGER; BEGIN SP:=0; 1:S[SP]:=P;SP:=SP+1; IF P^.LLINK<>NIL THEN BEGIN P:=P^.LLINK;GOTO 1 END; 3:SP:=SP-1;P:=S[SP]; IF P^.RLINK<>NIL THEN BEGIN P:=P^.RLINK;GOTO 1 END; WRITE(P^.INFO);IF SP<>0 THEN GOTO 3; END; PROCEDURE POST(P:PTR); BEGIN IF P<>NIL THEN BEGIN POST(P^.LLINK); POST(P^.RLINK); WRITE(P^.INFO); END END; BEGIN ENTER(ROOT);READLN;WRITELN; POSTORDER(ROOT);WRITELN POST(ROOT);WRITELN END.