Kan noen vennligst forklare forskjellen mellom binære treet og binært søketre med et eksempel ?
Forskjellen mellom binære treet og binært søketre
Binært tre: Tre der hver node har opp til to blader
1
/ \
2 3
Binært søketre: Brukes til å søke . Et binært tre, hvor det venstre barnet inneholder bare nodene med verdier som er mindre enn foreldrenoden, og hvor den høyre barnet kun inneholder noder med verdier som er større enn eller lik den overordnede.
2
/ \
1 3
Et binært tre er laget av noder, hvor hver node inneholder en "venstre" -pekeren, en "riktig" pekeren, og et dataelement. "Rot" -pekeren peker til den øverste node i treet. Venstre og høyre pekere rekursivt peke på mindre "undertrær" på hver side. En nullpeker representerer et binært tre med ingen elementer - den tomme treet. Den formelle rekursive definisjon er: et binært tre er enten tom (representert ved en nullpeker), eller er fremstilt av en enkelt node, hvor venstre og høyre pekere (rekursiv definisjon foran) hvert punkt til et binært tre.
Et binært søk tre (BST) eller "ordnet binært tre" er en type av binært tre hvor nodene er ordnet i rekkefølge: for hver node, er alle elementer i dens venstre subtre er mindre til noden (<), og alle elementene i sin høyre subtre er større enn noden (>).
5
/ \
3 6
/ \ \
1 4 9
Treet er vist ovenfor er et binært søk tre - "roten" node er en 5, og dens venstre undertreet noder (1, 3, 4) er <5, og dens riktige undertreet noder (6, 9) er> 5. rekursivt, hver av undertrærne også må adlyde binært søk treet begrensning: i (1, 3, 4) undertreet, 3 er roten, 1 <3 og 4> 3.
Se opp for den eksakte ordlyden i problemene - en "binært søketre" er forskjellig fra en "binær treet".
En binært søketre er en spesiell type binært tre som har følgende egenskap: for enhver node n, hver kommer nodens verdi i venstre subtre av n er mindre enn verdien av n, og hver etterkommer nodens verdi i riktig treet er større enn verdien av n.
Som alle ovenfor har forklart om forskjellen mellom binære treet og binært søketre, er jeg bare legge hvordan å teste om den gitte binære treet er binært søketre.
boolean b = new Sample().isBinarySearchTree(n1, Integer.MIN_VALUE, Integer.MAX_VALUE);
.......
.......
.......
public boolean isBinarySearchTree(TreeNode node, int min, int max)
{
if(node == null)
{
return true;
}
boolean left = isBinarySearchTree(node.getLeft(), min, node.getValue());
boolean right = isBinarySearchTree(node.getRight(), node.getValue(), max);
return left && right && (node.getValue()<max) && (node.getValue()>=min);
}
Håper det vil hjelpe deg. Beklager hvis jeg avlede fra emnet som jeg følte det er verdt å nevne dette her.
Binary treet er en spesialisert form for tre med to barn (venstre barn og høyre barn). Det er rett og slett representasjon av data i trestruktur
Binært søketre (BST) er en spesiell type binære treet som følger følgende betingelse:
- venstre barnenode er mindre enn dens moder Node
- riktig barnenode er større enn moder Node
En binærtreet er et tre som har barn er aldri mer enn to. En binært søketre følger invariant at venstre barn skal ha en mindre verdi enn rotnoden nøkkelen, mens den høyre barnet bør ha en større verdi enn rotnoden nøkkel.
Binært søketre: når inorder traversering er gjort på binært tre, får du sorterte verdier av innsatte elementer Binary treet: nei sortert rekkefølge er funnet i noen form for traversering
For å sjekke wheather eller ikke en gitt Binary treet er binært søketre her er er en alternativ tilnærming.
Traverse Tree In Inorder Fashion (dvs. Venstre Child -> Parent -> Høyre barn), Oppbevares krysset Node data i en midlertidig variabel kan si temp , like før lagring i temp , Sjekk wheather nåværende Node data er høyere enn forrige eller ikke . Så bare bryte ut av det, er treet ikke binært søketre annet krysse inntil enden.
Nedenfor er et eksempel med Java:
public static boolean isBinarySearchTree(Tree root)
{
if(root==null)
return false;
isBinarySearchTree(root.left);
if(tree.data<temp)
return false;
else
temp=tree.data;
isBinarySearchTree(root.right);
return true;
}
Opprettholde temp variabel utenfor
Binary treet står for en datastruktur som består av noder som kan bare ha to barn referanser.
Binært søketre ( BST ) på den annen side, er en spesiell form for binære treet datastruktur der hver node har en sammenlignbar verdi, og mindre verdsatt barn knyttet til venstre og større verdsatte barn festet til høyre.
Dermed all BST 's er Binary Tre imidlertid kun noen Binary treet er kanskje også BST . Varsle at BST er en undergruppe av Binary treet .
Så, Binary treet er mer en generell datastruktur enn binært søketre . Og har du også til å varsle at binært søketre er sortert treet, mens det ikke er slik sett med regler for generiske Binary treet .
Binary treet
En Binary Treesom er ikke et BST;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
Binært søketre (sortert Tre)
En binært søketre som også er et binært tre ;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
Binært søketre Node eiendom
Også varsle at for ethvert foreldrenoden i BST ;
Alle de venstre nodene har mindre verdi enn verdien av foreldrenoden. I den øvre eksempel nodene som har verdier {20, 25, 30}, som er alle plassert på venstre ( venstre etterkommere ) på 50, er mindre enn 50.
Alle de riktige noder har større verdi enn verdien av foreldrenoden. I den øvre eksempel nodene som har verdier {70, 75, 80}, som er alle plassert på høyre ( høyre etterkommere ) på 50, er større enn 50.
Det er ingen slik regel for Binary Tre Node. Den eneste regelen for Binary Tre Node er å ha to barne så det selv forklarer seg selv at hvorfor kalles binær .
binærtreet
Binary treet kan være noe som har to barn og en forelder. Det kan implementeres som lenket liste eller matrise, eller med den tilpassede API. Når du begynner å legge til mer spesifikke regler i det, blir det mer spesialiserte treet . Vanligste kjent implementering er det, legger mindre noder på venstre og større funn på høyre.
For eksempel kan et merket binært tre av størrelse 9 og høyde 3, med en rotnode hvis verdi er 2. treet er ubalansert og ikke sortert . https://en.wikipedia.org/wiki/Binary_tree
For eksempel, i treet på venstre side, har en 6 barn {B, C, D, E, F, G}. Det kan bli omdannet til den binære treet til høyre.
Binary Søk
Binary Search er teknikk / algoritme som brukes til å finne bestemt element på node-kjeden. Binary søk fungerer på sorterte arrays .
Binær søk sammen målverdien til den midtre element i matrisen; hvis de er ulike, er halverings der målet ikke kan ligge eliminert og søket fortsetter på den resterende halvparten før det er vellykket eller resterende halvparten er tom. https://en.wikipedia.org/wiki/Binary_search_algorithm
Et tre som representerer binære søk . Matrisen blir søkt her er [20, 30, 40, 50, 90, 100], og målverdien er 40.
Binært søketre
Dette er en av de implementeringer av binære treet. Dette er spesialisert for å søke .
Binært søketre og B-tre datastrukturer er basert på binære søk .
Binære søketrær (BST), også kalt bestilt eller sortert binære trær, er en spesiell type container : datastrukturer som lagrer "elementer" (som tall, navn etc.) i minnet. https://en.wikipedia.org/wiki/Binary_search_tree
Et binært søk tre av størrelse og dybde 9 3, med 8 ved roten. Bladene er ikke trukket.
Og til slutt stor skjema for ytelse sammenligning kjente datastrukturer og algoritmer brukt:
Bilde tatt fra Algoritmer (4th Edition)
I en binær søke tre, er alle nodene ordnet i en bestemt rekkefølge - noder til venstre for en rotnode har en mindre verdi enn det er rot, og alle nodene til høyre for en node har verdier som er større enn verdien av rot.
Et tre kan kalles som et binært tre hvis og bare hvis det maksimale antall barn i alle nodene er to.
Et tre kan kalles som et binært søketre hvis og bare hvis det maksimale antall barn i alle nodene er to og venstre barnet er alltid mindre enn den høyre barn.



















