Binary zoekopdracht bomen zijn een van de fundamentele abstracte datatypes verwekt in het programmeren van computers . Via een binaire zoekboom , kunt u een basisstructuur te definiëren door middel van inbreng en het zoeken algoritmen dat maakt het vinden en ophalen van informatie eenvoudig en systematisch . Aangezien het een "abstract " data type , kunt u het uit te voeren in een of andere vorm in vrijwel elke programmeertaal , zoals Python . Het creëren van een klasse om de boom te vertegenwoordigen , kunt u gemakkelijk een eenvoudige binaire zoekboom . Wat je nodig hebt Python-interpreter Toon Meer Aanwijzingen 1 Maak een klasse om de boom te vertegenwoordigen. >>> Klasse BinaryTree : : kopen van 2 de boom data Definieer in de klas al de code zal in deze klasse en bepalen hoe de boom functies tezamen . In deze bijzondere klasse , u de boom als een Python lijst definiëren . De lijst in de binaire boom begint met een initiële omvang van 50 : . . . _tree = [ -1 ] * 50 3 Maak de insert -functie . Deze functie maakt gebruik van eenvoudige wiskunde om het inbrengen punten te bepalen . Het zal elke controle ter plaatse . Als de spot bevat een negatief getal ( -1 ) dan is de spot is leeg en zal voegen . Zo niet, dan gaat het naar de volgende plek . Inbrengen in een binaire boom betekent dat kleinere waarden zal verhuizen naar de " linkse " knooppunt ( 2i + 1 , waarbij " i" is de huidige lijst index ) en hogere waarden zal verplaatsen naar de " rechtse " knooppunt ( 2i +2 ) : . . . def insert (zelf , waarde ) : . . . index = 0 . . . terwijl self._tree [ index] > = 0 : . . . Als waarde > self._tree [ index ] : . . . index = ( 2 * index ) + 1 . . . anders : . . . index = ( 2 * index ) + 2 . . . self._tree [ index] = waarde 4 Maak een zoekfunctie . De zoekfunctie wordt eveneens gedragen om de insert -functie , maar zal alleen controleren of de waarde bestaat in de boom : . . . def search (zelf , waarde ) : . . . index = 0 . . . terwijl self._tree [ index] > = 0 : . . . Als self._tree [ index] == waarde : . . . terug Ware . . . terug Valse
|