Program Strom; type pVrchol = ^Vrchol; Vrchol = object levy, pravy : pVrchol; procedure pridej(syn : pVrchol; doleva : boolean); procedure vypis; function vyhodnot : integer; constructor con; destructor des; end; constructor Vrchol.con; begin end; destructor Vrchol.des; begin end; procedure Vrchol.pridej(syn : pVrchol; doleva : boolean); begin if doleva then levy := syn else pravy := syn; end; function vytvorList(hodnota : integer) : pVrchol; begin {doplnte} end; function vytvorVnitrniVrchol(op : char) : pVrchol; begin {doplnte} end; function vytvorVrchol(s : string) : pVrchol; var cislo, chyba : integer; begin Val(s, cislo, chyba); if chyba > 0 then vytvorVrchol := vytvorVnitrniVrchol(s[1]) else vytvorVrchol := vytvorList(cislo); end; function postavStrom(var s : string) : pVrchol; var p : PVrchol; mezera : integer; begin mezera := pos(' ',s); if mezera <= 0 then p := vytvorVrchol(s) else p := vytvorVrchol(Copy(s,1,mezera - 1)); postavStrom := p; if mezera > 0 then Delete(s,1,mezera); if typeof(p^) = typeof(List) then exit; p^.pridej(postavStrom(s), TRUE); p^.pridej(postavStrom(s), FALSE); end; var koren : pVrchol; s : string; begin read(s); {s je vyraz v prefixove notaci} koren := postavStrom(s); koren^.vypis; writeln; write(koren^.vyhodnot); end.