Różnica między binarnego drzewa i binarne drzewo poszukiwań

głosy
282

Czy ktoś może wyjaśnić różnicę między binarne drzewo i binarne drzewo poszukiwań na przykładzie ?

Utwórz 17/06/2011 o 01:42
źródło użytkownik
W innych językach...                            


12 odpowiedzi

głosy
498

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
Odpowiedział 17/06/2011 o 01:55
źródło użytkownik

głosy
30

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”.

Odpowiedział 05/07/2012 o 16:32
źródło użytkownik

głosy
9

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.

Odpowiedział 27/02/2013 o 14:20
źródło użytkownik

głosy
12

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.

Odpowiedział 28/02/2013 o 07:18
źródło użytkownik

głosy
51

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:

  1. węzeł dziecko lewa jest mniejsza niż jego macierzystego węzła
  2. prawy węzeł dziecko jest większe niż jego macierzystego węzła
Odpowiedział 01/04/2013 o 14:19
źródło użytkownik

głosy
3

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.

Odpowiedział 06/06/2013 o 06:21
źródło użytkownik

głosy
3

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

Odpowiedział 19/02/2014 o 02:18
źródło użytkownik

głosy
1

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

Odpowiedział 04/01/2015 o 17:59
źródło użytkownik

głosy
9

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 .

Odpowiedział 18/03/2016 o 17:41
źródło użytkownik

głosy
4

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

wprowadzić opis obrazu tutaj

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.

wprowadzić opis obrazu tutaj

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

wprowadzić opis obrazu tutaj

Drzewo reprezentujące przeszukiwanie binarne . Tablica wyszukiwane jest tu, [20, 30, 40, 50, 90, 100], a wartość 40 docelową.

wprowadzić opis obrazu tutaj

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.

wprowadzić opis obrazu tutaj

I wreszcie wielki schemat dla porównania wydajności znanych struktur danych i algorytmów zastosowano:

wprowadzić opis obrazu tutaj

Obraz pochodzi z algorytmów (4th Edition)

Odpowiedział 26/05/2017 o 18:45
źródło użytkownik

głosy
0

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ń.

Odpowiedział 28/07/2017 o 21:32
źródło użytkownik

głosy
0

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.

Odpowiedział 27/05/2019 o 17:09
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more