binære trær kan danne byggesteinene i effektiv søking og sortering algoritmer og på grunn av dette har et bredt program i informatikk. Som Pascal har støtte for poster og pekeren typer , kan du elegant implementere binære trær i den. Bruk Pascal program som grunnlag for en binær heap prioritert kø eller modifisere den til å støtte noen form for sammenlignbare data . Instruksjoner
en
Åpne en ny Pascal -filen i en teksteditor eller IDE
2
Legg følgende linje i filen: . Program bintree ;
3
Type den neste delen av koden i editor for å definere de grunnleggende typer for det binære treet : TypeBinTree = ^ Node , Node = Recordi : integer ; L , R: BinTree ; slutten;
4
Kopier følgende inn i editoren å konstruere en tom treet : function MakeTree : BinTree ; beginMakeTree : = nilend ;
5
Plasser følgende kode inn i filen for å teste treet for tomhet : function IsEmptyTree ( B: BinTree ) : Boolean ; beginIsEmptyTree : = ( B = null) ; end ;
6
inneholde følgende linjer i skriptet for å konstruere et barn node med gitt heltall : funksjon MakeNode ( I: heltall) : BinTree ; Varres : BinTree ; beginNew ( Res ), Res ^ I: . = jeg, Res ^ L : . = MakeTree ; Res ^ R: . = MakeTree ; MakeNode : = Res ; slutten;
7
Legg disse linjene til å frigjøre et tre fra den gitte root node: prosedyre DeallocateTree (var B: BinTree ) ; beginif ikke IsEmptyTree ( B ) da beginDeallocateTree ( B ^ L . ) ; DeallocateTree ( B . ^ R ); Kast ( B ) ; SluttSlutt ;
8
Legg neste delen av koden inn i filen for å sette inn den gitte verdien inn i sin bestilles beliggenhet i binært tre : . prosedyre InsertInTree (jeg : integer ; Var B: BinTree ) ; beginif IsEmptyTree ( B ) thenB : . . . = MakeNode ( I) else if I < B ^ Jeg thenInsertInTree (I, B ^ L) elseInsertInTree (I, B ^ R ) end ;
9
Legg følgende HTML-kode for å søke et tre for en gitt verdi : function FindInTree ( S : integer ; B: BinTree ) : Boolean ; beginif IsEmptyTree ( B ) thenFindInTree : = Falseelse dersom S < ; B ^ Jeg thenFindInTree : . = FindInTree ( S , B ^ L . ) else if B ^ I < S thenFindInTree : = FindInTree ( S , B ^ R . ) else beginFindInTree : . = Trueendend ;
10
Lim neste prosedyre i din Pascal programmet for å se innholdet på treet i sortert rekkefølge : prosedyre PrintTree ( B: BinTree ) ; beginif ikke IsEmptyTree ( B ) så beginPrintTree ( . B ^ L) ; writeln ( B ^ . jeg ) ; PrintTree ( B ^ R) SluttSlutt ;
11
Legg disse siste linjene i filen for å fullføre Pascal program : . . beginend