Poate cineva vă rugăm să explicați diferența dintre arbore binar si arbore binar de căutare cu un exemplu ?
Diferența dintre arbore binar si arbore binar de căutare
arbore binar: arbore în care fiecare nod are până la două frunze
1
/ \
2 3
Arbore binar de căutare: Folosit pentru căutarea . Un arbore binar în cazul în care copilul rămas conține numai noduri cu valori mai mici decât nodul părinte, iar în cazul în care copilul dreapta numai conține noduri cu valori mai mari sau egale cu părintele.
2
/ \
1 3
Un arbore binar este format din noduri, în cazul în care fiecare nod conține un pointer „stânga“, un indicator „dreapta“, și un element de date. „Root“ , indicatorul la nodul din cea mai de sus copac. Stânga și în dreapta pointeri punct recursiv la „subarbori“ mai mici pe fiecare parte. Un pointer nul reprezintă un arbore binar cu nici un element - copac gol. Definiția formală recursiv este: un arbore binar este fie gol (reprezentat printr - un pointer nul), sau este format dintr - un singur nod, în cazul în care indicatoarele din stânga și dreapta (definiție recursiv înainte) fiecare punct într - un arbore binar.
Un arbore binar de căutare (BST) sau „ordonat arbore binar“ este un tip de arbore binar în care nodurile sunt aranjate în ordine: pentru fiecare nod, toate elementele din subarborele stâng sunt mai puțin la nodul (<), și toate elementele în subarborele dreptul său sunt mai mari decât nodul (>).
5
/ \
3 6
/ \ \
1 4 9
Arborele prezentat mai sus este un arbore binar de căutare - „root“ nod este 5, iar nodurile subarborelui stânga (1, 3, 4) sunt <5, și nodurile subarborelui dreapta (6, 9) sunt> 5. recursiv, fiecare dintre subramificații trebuie să se supună, de asemenea, binar constrângere căutare arbore: în (1, 3, 4) subarborele, 3 este rădăcina, pentru 1 <3 și 4> 3.
Ferește-te pentru formularea exactă în problemele - un „arbore binar de căutare“ este diferit de un „arbore binar“.
Un arbore binar de căutare este un tip special de arbore binar care prezintă următoarea proprietate: pentru orice nod n, valoarea fiecărui nod descendent în subarborele stâng al n este mai mică decât valoarea lui n, și valoarea fiecărui nod descendent în subarborelui drept mai mare decât valoarea lui n.
După cum toată lumea de mai sus a explicat despre diferența dintre arbore binar si arbore binar de căutare, eu sunt doar adăugarea de modul de a testa dacă dat arborele binar este binar arbore de căutare.
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);
}
Sper că vă va ajuta. Ne pare rău dacă eu sunt de deviere de la subiect așa cum am simțit că merită menționat acest lucru aici.
Binar Arborele este o formă specializată de copac cu doi copii (copilstânga șidreaptacopii). Este pursimplureprezentare a datelor în structura arborescentă
Binar de căutare arbore (BST) este un tip special de arbore binar care urmează următoarea condiție:
- nod copil stânga este mai mică decât nodul său părinte
- nodul copil dreapta este mai mare decât nodul său părinte
Un arbore binar este un copac a cărui copii nu sunt niciodată mai mult de două. Un arbore binar de căutare urmează invarianta că copilul din stânga ar trebui să aibă o valoare mai mică decât cheia nodului rădăcină, în timp ce copilul drept ar trebui să aibă o valoare mai mare decât cheia nodului root.
Căutare binară copac: atunci când inordine Traversarea se face pe arbore binar, veți obține valori extrase din elemente inserate arbore binar: nici un ordin sortat se gaseste in orice fel de parcurgeri
Pentru a verifica wheather sau nu un anumit binar copac este binar Arborele de căutare aici este o abordare alternativă.
Traverse Tree Inorder Fashion ( de exemplu pentru copii stânga -> părinte -> Dreptul copilului), Magazin traversată Nodul de date într - o variabilă temporară vă permite să spunem temp , chiar înainte de a depozita în temp , datele Verificați wheather curent nodului este mai mare decât cel anterior sau nu . Apoi , pur și simplu rupe - l, copac nu este binar de căutare arbore altceva traversa pana la sfarsitul.
Mai jos este un exemplu cu 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;
}
Menținerea variabilă temp afara
Binar copac reprezintă o structură de date , care este formată din noduri care pot doar au doi copii referințe.
Binar de căutare copac ( BST ) , pe de altă parte, este o formă specială de binar copac structura de date în cazul în care fiecare nod are o valoare comparabilă, iar copiii mai mici evaluate atașate la stânga și copii mai mari , în valoare atașat la dreapta.
Astfel, toate BST lui sunt binar copac , dar numai unele binar Arborele lui poate fi , de asemenea , BST . Anunță că BST este un subset al binar copac .
Deci, binar Arborele este mai mult o structura de date generale decât binar de căutare copac . Și , de asemenea , trebuie să înștiințăm că binar de căutare Arborele este un sortat copac întrucât nu există un astfel de set de reguli pentru generice binar copac .
Arbore binar
O Binary Treecare nu o BST;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
Binar de căutare copac (sortate copac)
Un arbore binar de căutare , care este , de asemenea , un arbore binar ;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
Binar de căutare de proprietate copac Nod
De asemenea , notifică faptul că pentru orice nod părinte în BST ;
Toate nodurile de stânga au o valoare mai mică decât valoarea nodului părinte. În exemplul de sus, nodurile cu valori {20, 25, 30} care sunt situate în partea stângă ( descendenți din stânga ) de 50, sunt mai mici decât 50.
Toate nodurile din dreapta au o valoare mai mare decât valoarea nodului părinte. În exemplul de sus, nodurile cu valori {70, 75, 80} care sunt toate situate pe dreapta ( descendenți din dreapta ) de 50, sunt mai mari de 50 de ani .
Nu există nici o astfel de regulă pentru binar copac Nod. Singura regulă pentru binar copac Nod are doi copii , deci se auto-explică faptul că motivul numit binar .
arbore binar
Arbore binar poate fi ceva care are 2 copii și un părinte. Acesta poate fi pus în aplicare sub forma unei liste sau matrice legate, sau cu API - ul personalizat. După ce începeți să adăugați reguli mai specifice în el, devine mai copac specializat . Punerea în aplicare Cele mai frecvente cunoscut este faptul că, adăugați noduri mai mici de pe stânga și cele mai mari pe dreapta.
De exemplu, un arbore binar marcat de dimensiuni 9 și înălțime 3, cu un nod rădăcină a cărui valoare este 2. Arborele este dezechilibrată și nu sortate . https://en.wikipedia.org/wiki/Binary_tree
De exemplu, în arborele din stânga, A are 6 copii {B, C, D, E, F, G}. Acesta poate fi transformat în arborele binar pe dreapta.
Căutare binară
Binar de căutare este tehnica / algoritm care este folosit pentru a găsi element specific pe lanțul de nod. Căutare binară funcționează pe matrice sortate .
Căutare binară compară valoarea țintă la elementul de mijloc al șirului; în cazul în care acestea sunt inegale, jumătate în care ținta nu poate minți este eliminată și căutarea continuă pe jumătatea rămasă până când este de succes sau jumătatea rămasă este gol. https://en.wikipedia.org/wiki/Binary_search_algorithm
Un arbore reprezentând binar de căutare . Șirul căutat aici este [20, 30, 40, 50, 90, 100], iar valoarea țintă este de 40.
arbore binar de căutare
Aceasta este una dintre implementările arborelui binar. Acest lucru este specializat pentru căutarea .
Structuri de date binare de arbori de căutare și B-arbori se bazează pe căutarea binară .
Binar de căutare copaci (BST), numit uneori ordonate sau sortate arbori binari, un anumit tip de container : structuri de date care stochează „elemente“ (cum ar fi numere, nume etc.) în memorie. https://en.wikipedia.org/wiki/Binary_search_tree
Un arbore binar de căutare de dimensiune 9 și adâncimea 3, cu 8 la rădăcină. Frunzele nu sunt desenate.
Și, în final, o mare schemă pentru compararea performanțelor de date și algoritmi-structuri bine cunoscute aplicate:
Imaginea a fost preluată de la Algoritmi (ediția a 4)
Într-un arbore binar de căutare, toate nodurile sunt aranjate într-o anumită ordine - noduri la stânga unui nod rădăcină au o valoare mai mică decât este rădăcină, și toate nodurile la dreapta unui nod au valori mai mari decât valoarea rădăcină.
Un copac poate fi numit ca un arbore binar, dacă și numai dacă numărul maxim de copii de la oricare dintre noduri este de două.
Un copac poate fi numit ca un arbore binar de căutare, dacă și numai dacă numărul maxim de copii de la oricare dintre noduri este de două, iar copilul stânga este întotdeauna mai mică decât copilul din dreapta.



















