Binära sökträd är en av de grundläggande abstrakta datatyper som tillkommit i datorprogrammering . Genom ett binärt sökträd , kan du definiera en grundläggande struktur i form av synpunkter och sökalgoritmer som gör att lokalisera och hämta information snabbt och systematiskt . Eftersom det är ett " abstrakt " datatyp , kan du genomföra det i någon form i de flesta något programmeringsspråk , inklusive Python . Skapa en klass för att representera trädet , kan du enkelt bygga en enkel träd binär sökning. Saker du behöver
Pythontolk
Visa fler instruktioner
1
Skapa en klass för att representera trädet . All kod kommer att falla in i denna klass och styr hur trädet funktioner:
>>> klass binaryTREE :
2
Definiera träddata i klassen . I denna klass , definierar du trädet som en Python lista . Listan i binära trädet börjar med en ursprunglig storlek 50 :
. . . _tree = [ -1 ] * 50
3
Skapa infogningsfunktionen . Denna funktion använder enkel matematik för att bestämma infogningspunkter . Det kommer att kontrollera varje plats . Om fläck innehåller ett negativt tal ( -1 ) då platsen är tom och kommer att infoga . Om inte , flyttar den till nästa plats . Insättning i ett binärt träd innebär att mindre värden kommer att flytta till " vänster " nod ( 2i + 1 , där "i " är den aktuella listan index ) och större värden kommer att flytta till " höger " nod ( 2i +2 ) :
. . . def insert ( jaget , värde ) : . . . index = 0 . . . medan self._tree [ index ] > = 0 : . . . Om värdet > self._tree [ index ] : . . . index = ( 2 * index) + 1 . . . annat : . . . index = ( 2 * index) + 2 . . . self._tree [ index ] = value
4
Skapa en sökfunktion . Sökfunktionen kommer att bete sig på samma sätt infogningsfunktionen , men kommer endast att kontrollera om värdet finns i trädet :
. . . def sökning ( jaget , värde ) : . . . index = 0 . . . medan self._tree [ index ] > = 0 : . . . Om self._tree [ index ] == värde : . . . return true . . . returnera False Addera