Binaire bomen kunnen de bouwstenen van efficiënt zoeken en sorteren algoritmen vormen en hierdoor hebben een brede toepassing in de informatica . Zoals Pascal heeft ondersteuning voor administratie en types pointer , kunt u elegant implementeren binaire bomen erin . Gebruik uw Pascal programma als de basis van een binaire heap prioriteit wachtrij of aan te passen aan elke vorm van vergelijkbare gegevens te steunen . Instructies 1 Open een nieuwe Pascal -bestand in uw tekstverwerker of IDE kopen van 2 Voeg volgende regel toe aan het bestand : . Programma bintree ; < br > Type 3 het volgende deel van de code in uw editor om de basistypen voor de binaire boom te definiëren : TypeBinTree = ^ Node ; Node = recordi : integer ; L , R : BinTree ; end ; = nilend ; Place 5 de volgende broncode in uw bestand naar de boom voor leegte testen : ; : functie MakeTree : beginMakeTree BinTree Kopieer 4 de volgende in de editor om een lege boom te construeren : functie IsEmptyTree ( B : BinTree ) : Boolean ; beginIsEmptyTree : = ( B = nihil ) ; end ; 6 Neem de volgende regels in het script om een kind knooppunt te bouwen met de gegeven integer waarde : functie MakeNode ( I : integer ) : BinTree ; Varres : BinTree ; beginNew ( Res ) ; Res ^ I : . = I; Res ^ L : . = MakeTree ; Res ^ R : . = MakeTree ; MakeNode : = Res ; end ; 7 Voeg deze regels aan een boom uit de gegeven basisknooppunt bevrijden : procedure DeallocateTree ( var B : BinTree ) ; beginif niet IsEmptyTree ( B ) vervolgens beginDeallocateTree ( B ^ L . ) ; DeallocateTree ( B . ^ R ) ; Gooi ( B ) ; endend ; Plaats 8 het volgende deel van de code in uw bestand naar de opgegeven waarde in te voegen in haar besteld locatie in de binaire boom : . procedure InsertInTree ( I : integer ; var B : BinTree ) ; beginif IsEmptyTree ( B ) thenB : . . . = MakeNode ( I ) else if I < B ^ I thenInsertInTree ( I , B ^ L ) elseInsertInTree ( I , B ^ R ) end ; 9 Voeg de volgende broncode aan een boom zoeken naar een bepaalde waarde : functie FindInTree ( S : integer ; B : BinTree ) : Boolean ; beginif IsEmptyTree ( B ) thenFindInTree : = Falseelse als S < , B ^ I thenFindInTree : . = FindInTree ( S , B ^ L . ) anders als B ^ I < S thenFindInTree : = FindInTree ( S , B ^ r . ) anders beginFindInTree : . = Trueendend ; 10 Plak de volgende procedure in uw Pascal programma om de inhoud van de boom in gesorteerde volgorde zien : procedure PrintTree ( B : BinTree ) ; beginif niet IsEmptyTree ( B ) vervolgens beginPrintTree ( . B ^ L ) ; writeln ( B ^ . I ) ; PrintTree ( B ^ R ) endend ; 11 In deze laatste regels om het bestand naar het Pascal programma af : . . beginend
|