Program STROM_ARITM_VYRAZU; uses CRT; type SPOJ = ^UZEL; UZEL = record HODN : char; LU, PU : SPOJ; end; var STROMAV : SPOJ; Procedure PRIDEJ(var KAM:SPOJ; CO:char); begin new(KAM); KAM^.HODN:=CO; KAM^.LU:=nil; KAM^.PU:=nil end; Procedure VLOZVYRAZ(var KAM:SPOJ); var CO : char; POD : SPOJ; begin Write('Zadej levy POD ',KAM^.HODN,': '); Readln(CO); if CO<>'0' then {neni prazdny, ma naslednika} begin PRIDEJ(POD,CO); {zarad leveho naslednika} KAM^.LU:=POD; VLOZVYRAZ(POD) end; {levy podstrom vlozen} Write('Zadej pravy POD ',KAM^.HODN,': '); Readln(CO); if CO<>'0' then {neni prazdny, ma naslednika} begin PRIDEJ(POD,CO); {zarad praveho naslednika} KAM^.PU:=POD; VLOZVYRAZ(POD) end {pravy podstrom vlozen} end; Procedure VYTVOR(var BS:SPOJ); var KAM : SPOJ; CO : char; begin Write('Zadej koren: '); Readln(CO); if CO<>'?' then begin PRIDEJ(BS,CO); KAM:=BS; VLOZVYRAZ(KAM) end; end; Procedure POSTORDER(BS:SPOJ); begin if BS<>nil then begin POSTORDER(BS^.LU); POSTORDER(BS^.PU); Write(BS^.HODN,' ') end end; begin ClrScr; VYTVOR(STROMAV); POSTORDER(STROMAV); end.