program Binarni_strom_trideni; uses crt; type UVrchol = ^Vrchol; Vrchol = record hodnota:integer; levy,pravy:UVrchol end; var koren : UVrchol; procedure Inorder(koren :UVrchol); begin if (koren <> nil) then begin Inorder(koren^.levy); write(koren^.hodnota:6); Inorder(koren^.pravy); end; end; procedure Pridej_na_konec(c :integer; var rodic :UVrchol); begin new(rodic); with rodic^ do begin hodnota:=c; levy:=nil; pravy:=nil end; end; procedure Pridej(c :integer; var rodic :UVrchol); begin if (rodic = nil) then Pridej_na_konec(c, rodic) else if not(c = rodic^.hodnota) then begin if c < rodic^.hodnota then Pridej(c, rodic^.levy) else Pridej(c, rodic^.pravy) end; end; procedure Vytvor_Strom(var koren :UVrchol); var rodic : UVrchol; c : integer; begin gotoxy(16,12);write('Vkladej cisla (konec = 999): '); readln(c); if (c <> 999) then Pridej_na_konec(c, koren); while (c <> 999) do begin gotoxy(16,12); write(' '); gotoxy(16,12); write('Vkladej cisla (konec = 999): '); readln(c); if (c <> 999) then begin rodic := koren; Pridej(c, rodic) end; end; end; BEGIN clrscr; gotoxy(15,6); writeln('Program na demonstraci trideni a ruseni duplicit'); gotoxy(23,8); writeln('Vytvoril David Padrta - IVT 3'); Vytvor_Strom(koren); gotoxy(16,12); write(' '); gotoxy(16,12); writeln('Vzestupne setrideny soubor cisel:'); writeln; Inorder(koren); writeln; writeln('Stiskni ENTER ...'); readln; writeln('Program byl ukoncen.'); END.