Czy ktoś może wyjaśnić różnicę między binarne drzewo i binarne drzewo poszukiwań na przykładzie ?
Różnica między binarnego drzewa i binarne drzewo poszukiwań
Binarne drzewo: Drzewo gdzie każdy węzeł ma do dwóch liści
1
/ \
2 3
Binarne drzewo wyszukiwania: Służy do przeszukiwania . Binarne drzewo gdzie pozostawił dziecko zawiera tylko węzły z wartościami poniżej węzła nadrzędnego, a gdzie prawa dziecka tylko zawiera węzły o wartościach równych lub większych niż do rodzica.
2
/ \
1 3
Binarne drzewo składa się z węzłów, gdzie każdy węzeł zawiera wskaźnik „lewy”, „prawo” wskaźnik i element danych. „Root” Punkty wskaźnik do najwyższego węzła w drzewie. Po lewej i prawej rekurencyjnie wskaźniki wskazują na mniejsze „poddrzew” po obu stronach. Null pointer reprezentuje binarne drzewo bez elementów - pustym drzewie. Formalna definicja rekurencyjna to: binarne drzewo jest albo pusta (reprezentowany przez null pointer), albo jest wykonana z pojedynczego węzła, gdzie po lewej i prawej wskaźniki (rekurencyjna definicja naprzód) każdy punkt do binarnego drzewa.
Drzewo binarne wyszukiwania (BST) lub „uporządkowane drzewo binarne” jest rodzajem binarnym drzewie, gdzie węzły są ułożone w kolejności: dla każdego węzła, wszystkie elementy w jego lewym poddrzewie są mniej do węzła (<), a wszystkie elementy w jego prawym poddrzewie są większe niż węzeł (>).
5
/ \
3 6
/ \ \
1 4 9
Drzewo przedstawiono powyżej jest przeszukiwanie binarne drzewo - węzeł "korzeń" jest 5, a jej lewy węzły SUBTREE (1, 3, 4) wynosi <5, a jej prawy węzły SUBTREE (6, 9) jest> 5. rekurencyjnie, każdy z poddrzew musi również przestrzegać binarne drzewo poszukiwań ograniczenie: w (1, 3, 4) poddrzewie, 3 jest korzenia, 1 <3 i 4> 3.
Uważaj na dokładnym brzmieniu problemów - jest „binarne drzewo poszukiwań” różni się od „binarne drzewo”.
Przeszukiwanie binarne drzewo jest specjalnym rodzajem drzewa binarnego, który wykazuje następujące właściwości: dla każdego węzła n, wartość każdego potomka węzła w lewym poddrzewie n jest mniejsza niż wartość n, a wartość każdego potomka węzła w prawym poddrzewie jest większa niż wartość n.
Jak wszyscy powyżej wyjaśnił o różnicy między binarnego drzewa i binarne drzewo poszukiwań, ja po prostu dodając, jak sprawdzić, czy dana binarna jest drzewo binarne drzewo poszukiwań.
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);
}
Nadzieję, że to pomoże. Niestety, jeśli jestem skierowanie od tematu, jak czułem, że warto wspomnieć o tym tutaj.
Drzewo binarne jest wyspecjalizowaną formą drzewa z dwoma dziecka (dziecko lewej i prawej dziecko). Jest to po prostu reprezentacja danych w strukturze drzewa
Binarne drzewo poszukiwań (BST) to specjalny rodzaj drzewo binarne, które wynika następujący warunek:
- węzeł dziecko lewa jest mniejsza niż jego macierzystego węzła
- prawy węzeł dziecko jest większe niż jego macierzystego węzła
Binarne drzewo jest drzewem, którego dzieci są nie więcej niż dwa. Przeszukiwanie binarne drzewo następująco niezmienna, że lewa dziecko powinno mieć mniejszą wartość niż klucz węzła głównego, natomiast prawy dziecko powinno mieć większą wartość niż klucz węzła głównego użytkownika.
Binarne drzewo poszukiwań: kiedy Inorder przechodzenie odbywa się na drzewie binarnym, masz posortowane wartości wstawianych elementów binarnego drzewa: nie posortowanych znajduje się w każdym rodzaju przechodzenie
Aby sprawdzić pogodowymi czy dana Binary Tree to binarne drzewo poszukiwań tutaj jest to podejście alternatywne.
Przechodzić drzewo w Inorder Moda (tj Lewicy Dziecka -> Rodzic -> Prawy dziecko), Sklep ruch danych węzła w zmiennej tymczasowej powiedzmy temp , tuż przed zapisaniem do temp , Sprawdź pogodowymi dane bieżący węzeł jest wyższa niż poprzedni, czy też nie , Wtedy po prostu złamać go, drzewo nie jest binarne drzewo poszukiwań innego przemierzać bez tytułu koniec.
Poniżej znajduje się przykład z 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;
}
Utrzymać zmienną temp na zewnątrz
Binary Drzewo stoi na strukturę danych , która składa się z węzłów , które tylko mają dwoje dzieci referencje.
Binarne drzewo poszukiwań ( BST ), z drugiej strony, jest szczególną formą binarne drzewo struktury danych, gdzie każdy węzeł ma porównywalną wartość, a mniejsze dzieci wyceniane przymocowane do lewej i większych dzieci wyceniane związane z prawem.
Tak więc, wszystkie BST „s są binarne drzewo jednak tylko niektóre binarne drzewo ” może być również s BST . Informuj że BST jest podzbiorem drzewo binarne .
Więc binarne drzewo jest bardziej ogólnej strukturze danych niż binarne drzewo poszukiwań . A także trzeba zawiadomić, że binarne drzewo poszukiwań jest posortowana drzewo natomiast nie ma takiego zestawu reguł dla rodzajowego drzewo binarne .
Drzewo binarne
Binary TreeKtóry nieBST ;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
Binarne drzewo poszukiwań (klasyfikowane Tree)
Binarne drzewo poszukiwań który jest również binarne drzewo ;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
Binary Search nieruchomość Drzewo Node
Informują również, że dla każdego węzła nadrzędnego w BST ;
Wszystkie węzły mają lewy mniejszą wartość niż wartość węzła nadrzędnego. W górnej przykład węzły wartości {20, 25, 30}, które są zlokalizowane po lewej stronie ( lewej potomków ) wynoszące 50, są mniejsze niż 50.
Wszystkie odpowiednie węzły mają większą wartość niż wartość węzła nadrzędnego. W górnej przykład węzły wartości {70, 75, 80}, które wszystkie znajdują się na prawo ( w prawo zstępnych ) 50, są większe niż 50.
Nie ma takiej reguły dla binarne drzewo węzła. Jedyna zasada dla binarne drzewo węzeł jest posiadanie dwóch childrens tak samo tłumaczy się, że dlaczego nazywa binarny .
binarne drzewo
Binarne drzewo może być cokolwiek , który ma 2 dziecko i 1 rodzica. Może być realizowany jako połączonej listy lub tablicy lub z niestandardowego interfejsu API. Po uruchomieniu, aby dodać bardziej szczegółowe przepisy do niego, staje się bardziej wyspecjalizowane drzewo . Najczęstszym znana realizacja jest to, że dodanie mniejszych węzłów na lewo i na prawo większych.
Na przykład, oznaczone drzewo binarne o rozmiarze 9 i wysokości 3, z węzła głównego, którego wartość wynosi 2. Drzewo jest niezrównoważony i nie sortowane . https://en.wikipedia.org/wiki/Binary_tree
Na przykład, w drzewie po lewej stronie, A ma 6 dzieci {B, C, D, E, F, G}. To może być przekształcona w binarnym drzewie po prawej stronie.
Binary Search
Binary Search jest technika / algorytm, który jest używany, aby znaleźć konkretny element w łańcuchu węzłów. Binary wyszukiwarka działa na posortowanych tablic .
Binary wyszukiwania porównuje wartość docelową do środkowego elementu tablicy; jeśli są nierówne, połowa, w której cel nie może kłamać zostanie wyeliminowana, a wyszukiwarka nadal na pozostałej połowie aż będzie udany, czy druga połowa jest pusta. https://en.wikipedia.org/wiki/Binary_search_algorithm
Drzewo reprezentujące przeszukiwanie binarne . Tablica wyszukiwane jest tu, [20, 30, 40, 50, 90, 100], a wartość 40 docelową.
Binarne drzewo poszukiwań
Jest to jedna z implementacji drzewa binarnego. To specjalizuje się w poszukiwania .
Struktury binarne drzewo wyszukiwania i B-tree dane są oparte na wyszukiwaniu binarnym .
Binarne drzewo poszukiwań (BST), czasami nazywany zamówione lub sortowane drzewo binarne, to szczególny rodzaj opakowania : struktury danych, które przechowują „elementy” (takie jak numery, nazwy itd.) W pamięci. https://en.wikipedia.org/wiki/Binary_search_tree
Przeszukiwanie binarne drzewo o rozmiarze 9 i głębokości 3 z 8 u nasady. Liście nie są rysowane.
I wreszcie wielki schemat dla porównania wydajności znanych struktur danych i algorytmów zastosowano:
Obraz pochodzi z algorytmów (4th Edition)
W binarne drzewo poszukiwań, wszystkie węzły są ułożone w określonej kolejności - węzły na lewo od węzła głównego mają mniejszą wartość niż to jest korzeń, i wszystkie węzły na prawo od węzła mają wartości większe niż wartość z korzeń.
Drzewo można nazwać jako binarne drzewo, wtedy i tylko wtedy, gdy maksymalna liczba dzieci w każdym z węzłów wynosi dwa.
Drzewo można nazwać jako wyszukiwaniu binarnym drzewie, wtedy i tylko wtedy, gdy maksymalna liczba dzieci w każdym z węzłów jest dwa i lewy dziecko jest zawsze mniejszy niż prawy dziecka.



















