Binära träd kan utgöra byggstenar effektiva sökning och sortering algoritmer och på grund av detta har bred tillämpning inom datavetenskap . Som Pascal har stöd för journaler och typer pekare , kan du implementera elegant binära träd i den . Använd din Pascal program som grund för en binär heap prioriterad kö eller modifiera den för att stödja någon form av jämförbara uppgifter . Instruktioner
1
Öppna ett nytt Pascal filen i din textredigerare eller IDE
2
Lägg till följande rad i filen : . Program bintree ,
3
Typ nästa avsnitt av koden i din editor för att definiera de grundläggande typer för binära träd : TypeBinTree = ^ Nod , Nod = RECORDI : integer ; L , R : BinTree ; slut ;
4
Kopiera följande i redigeraren för att konstruera ett tomt träd : funktion MakeTree : BinTree ; beginMakeTree : = nilend ;
5
Placera följande källkoden i filen för att testa trädet för tomheten : funktionen IsEmptyTree ( B : BinTree ) : Boolean ; beginIsEmptyTree : = ( B = noll ) , slutet ,
6
Inkludera följande rader i ditt script för att konstruera ett barn nod med det givna heltal : funktionen MakeNode ( I : integer ) : BinTree ; Varres : BinTree ; beginNew ( RES); Res ^ I : . = I ; Res ^ L : . = MakeTree ; Res ^ R : . = MakeTree ; MakeNode : = Res ; slut ;
7
Lägg dessa linjer för att frigöra ett träd från den givna rotnoden : förfarande DeallocateTree ( var B : BinTree ) ; beginif inte IsEmptyTree ( B ) sedan beginDeallocateTree ( B ^ L . ) ; DeallocateTree ( B . ^ R ) , Kasta ( B ) , endend ;
8
Placera nästa avsnitt av kod på din fil för att infoga det angivna värdet i sin beställda plats i det binära trädet : . förfarande InsertInTree ( jag : integer ; var B : BinTree ) ; beginif IsEmptyTree ( B ) thenB : . . . = MakeNode ( I ) annars om jag 9
Lägg följande källkoden för att söka ett träd för ett givet värde : function FindInTree ( S : integer ; B : BinTree ) : Boolean ; beginif IsEmptyTree ( B ) thenFindInTree : = Falseelse om S < , B ^ Jag thenFindInTree : . = FindInTree ( S , B ^ L . ) annars om B ^ I < S thenFindInTree : = FindInTree ( S , B ^ R . ) annars beginFindInTree : . = Trueendend ;
10
Klistra nästa procedur i din Pascal program för att se innehållet i träd i sorterad ordning : förfarande PrintTree ( B : BinTree ) ; beginif inte IsEmptyTree ( B ) sedan beginPrintTree ( . B ^ L ) , writeln ( B ^ . i); PrintTree ( B ^ R ) endend ,
11
Lägg dessa sista rader i din fil för att avsluta Pascal programmet : . . beginend