Først vil vi forstå binært tre og binært søketre separat, og så skal vi se på forskjellene mellom et binært tre og et binært søketre.
Hva er et binært tre?
EN Binært tre er en
Det binære treet kan representeres som:
I figuren ovenfor kan vi observere at hver node inneholder maksimalt 2 barn. Hvis en node ikke inneholder venstre eller høyre underordnede, vil verdien av pekeren med hensyn til det underordnede være NULL.
Grunnleggende terminologier som brukes i et binært tre er:
I et binært tre er det ett tre kjent som en perfekt binært tre . Det er en tre der alle interne noder må inneholde to noder, og alle bladnodene må være på samme dybde. Når det gjelder et perfekt binært tre, kan det totale antallet noder som finnes i et binært tre beregnes ved å bruke følgende ligning:
n = 2m+1-1
hvor n er antall noder, m er dybden til en node.
Hva er et binært søketre?
EN Binært søketre er et tre som følger en eller annen rekkefølge for å ordne elementene, mens det binære treet ikke følger noen rekkefølge. I et binært søketre må verdien til venstre node være mindre enn overordnet node, og verdien til høyre node må være større enn overordnet node.
La oss forstå konseptet med et binært søketre gjennom eksempler.
I figuren ovenfor kan vi observere at verdien til rotnoden er 15, som er større enn verdien til alle nodene i det venstre undertreet. Verdien av rotnoden er mindre enn verdiene til alle nodene i et høyre undertre. Nå flytter vi til venstre underordnede av rotnoden. 10 er større enn 8 og mindre enn 12; det tilfredsstiller også egenskapen til det binære søketreet. Nå flytter vi til høyre underordnet av rotnoden; verdien 20 er større enn 17 og mindre enn 25; det tilfredsstiller også egenskapen til binært søketre. Derfor kan vi si at treet vist ovenfor er det binære søketreet.
Nå, hvis vi endrer verdien av 12 til 16 i det binære treet ovenfor, må vi finne ut om det fortsatt er et binært søketre eller ikke.
Verdien av rotnoden er 15, som er større enn 10, men mindre enn 16, så den tilfredsstiller ikke egenskapen til det binære søketreet. Derfor er det ikke et binært søketre.
Operasjoner på binært søketre
Vi kan utføre innsetting, sletting og søkeoperasjoner på det binære søketreet. La oss forstå hvordan et søk utføres på et binært søk. Det binære treet er vist nedenfor som vi må utføre søkeoperasjonen på:
Anta at vi må søke 10 i det binære treet ovenfor. For å utføre det binære søket vil vi vurdere alle heltallene i en sortert matrise. Først lager vi en komplett liste i et søkerom, og alle tallene vil eksistere i søkefeltet. Søkefeltet er markert med to pekere, dvs. start og slutt. Matrisen til det binære treet ovenfor kan representeres som
Først skal vi beregne det midterste elementet og sammenligne det midterste elementet med elementet som skal søkes. Midtelementet beregnes ved å bruke n/2. Verdien av n er 7; derfor er det midterste elementet 15. Det midterste elementet er ikke likt det søkte elementet, dvs. 10.
Merk: Hvis elementet som søkes er mindre enn midtelementet, vil søket utføres i venstre halvdel; ellers vil søking gjøres på høyre halvdel. Ved likestilling finnes elementet.
Siden elementet som skal søkes er mindre enn midtelementet, vil søkingen utføres på venstre array. Nå er søket redusert til det halve, som vist nedenfor:
Midtelementet i venstre array er 10, som er lik det søkte elementet.
Tidskompleksitet
I et binært søk er det n elementer. Hvis det midterste elementet ikke er lik det søkte elementet, reduseres søkerommet til n/2, og vi vil fortsette å redusere søkerommet med n/2 til vi fant elementet. I hele reduksjonen, hvis vi flytter fra n til n/2 til n/4 og så videre, vil det ta logg2n trinn.
Forskjeller mellom binært tre og binært søketre
Grunnlag for sammenligning | Binært tre | Binært søketre |
---|---|---|
Definisjon | Et binært tre er en ikke-lineær datastruktur der en node kan ha maksimalt to barn, dvs. en node kan ha 0, 1 eller maksimalt to barn. Et binært søketre er et ordnet binært tre der en rekkefølge følges for å organisere nodene i et tre. | |
Struktur | Strukturen til det binære treet er at den første noden eller den øverste noden er kjent som rotnoden. Hver node i et binært tre inneholder venstre peker og høyre peker. Venstre peker inneholder adressen til venstre undertre, mens høyre peker inneholder adressen til høyre undertre. | Det binære søketreet er en av typene binærtre som har verdien av alle nodene i det venstre undertreet mindre eller lik rotnoden, og verdien til alle nodene i et høyre undertre er større enn eller lik verdien til rotnoden. |
Drift | Operasjonene som kan implementeres på et binært tre er innsetting, sletting og traversering. | Binære søketrær er de sorterte binære trærne som gir rask innsetting, sletting og søk. Oppslag implementerer hovedsakelig binært søk ettersom alle nøklene er ordnet i sortert rekkefølge. |
typer | Fire typer binære trær er Full Binary Tree, Complete Binary Tree, Perfect Binary Tree og Extended Binary Tree. | Det finnes forskjellige typer binære søketrær som AVL-trær, Splay-tre, Tango-trær, etc. |