binære søk trær er en av de grunnleggende abstrakte datatyper unnfanget i programmering . Gjennom et binært søketre , kan du definere en grunnleggende struktur gjennom innspill og søke algoritmer som gjør finne og hente informasjon enkelt og systematisk . Siden det er en " abstrakt " datatype, kan du implementere det i en eller annen form i de fleste noen programmeringsspråk, inkludert Python . Opprette en klasse for å representere treet, kan du enkelt bygge en enkel binært søketre . Du trenger
Python tolk
Vis flere instruksjoner
en
Lag en klasse for å representere treet. All koden vil falle i denne klassen og kontroll hvordan treet funksjoner:
>>> klasse BinærTre :
2
Definer treet data i klassen. I denne klassen definerer du treet som et Python -listen. Listen i det binære treet begynner med en opprinnelig størrelse på 50 : en
. . . _tree = [ -1 ] * 50
3
Lag innsatsen funksjon . Denne funksjonen bruker enkel matematikk å finne ut innsetting poeng. Det vil sjekke hver spot . Hvis flekken inneholder et negativt tall ( -1 ) så stedet er tom og vil sette inn. Hvis ikke, går den videre til neste sted . Innsetting i et binært tre betyr at mindre verdier vil flytte til " venstre " node ( 2i + 1 , der " jeg " er den gjeldende listen index) og større verdier vil flytte til " høyre " node ( 2i 2 ) : en
. . . def innsats ( selv, verdi) : . . . index = 0 . . . mens self._tree [ index ] > = 0 : . . . hvis verdi> self._tree [ index ]: . . . index = ( 2 * index ) + 1 . . . annet : . . . index = ( 2 * index ) + 2 . . . self._tree [ indeks ] = verdi
4
Lag en søkefunksjon . Søkefunksjonen vil oppføre seg på samme måte som innsatsen funksjon, men vil bare sjekke om verdien finnes i treet : en
. . . def søk (egen , verdi) : . . . index = 0 . . . mens self._tree [ index ] > = 0 : . . . hvis self._tree [ index ] == verdi: . . . return true . . . returnere False