it-swarm.com.de

Unterschied zwischen binärem Baum und binärem Suchbaum

Kann jemand bitte den Unterschied zwischen binärer Baum und binärer Suchbaum mit einem Beispiel erklären?

309
Neel

Binärer Baum: Baum, in dem jeder Knoten bis zu zwei Blätter hat

  1
 / \
2   3

Binärer Suchbaum: Wird für Suchen verwendet. Ein Binärbaum, in dem das linke Kind nur Knoten mit Werten enthält, die kleiner als der übergeordnete Knoten sind, und in dem das rechte Kind Nur enthält Knoten mit Werten, die größer oder gleich dem übergeordneten Knoten sind.

  2
 / \
1   3
541
Mehrdad

Binary Tree ist eine spezielle Baumform mit zwei Kindern (linkes Kind und rechtes Kind). Es ist einfach die Darstellung von Daten in der Baumstruktur

Binary Search Tree (BST) ist eine spezielle Art von Binary Tree, die folgende Bedingung erfüllt:

  1. der linke untergeordnete Knoten ist kleiner als sein übergeordneter Knoten
  2. der rechte untergeordnete Knoten ist größer als sein übergeordneter Knoten
54
Jayzcode

Ein binärer Baum besteht aus Knoten, wobei jeder Knoten einen "linken" Zeiger, einen "rechten" Zeiger und ein Datenelement enthält. Der Zeiger "root" zeigt auf den obersten Knoten im Baum. Der linke und der rechte Zeiger verweisen rekursiv auf kleinere "Teilbäume" auf beiden Seiten. Ein Nullzeiger repräsentiert einen Binärbaum ohne Elemente - den leeren Baum. Die formale rekursive Definition lautet: Ein Binärbaum ist entweder leer (dargestellt durch einen Nullzeiger) oder besteht aus einem einzelnen Knoten, wobei der linke und der rechte Zeiger (rekursive Definition voraus) jeweils auf einen Binärbaum zeigen.

Ein binärer Suchbaum (BST) oder "geordneter binärer Baum" ist eine Art binärer Baum, in dem die Knoten in der Reihenfolge angeordnet sind: Für jeden Knoten sind alle Elemente in seinem linken Unterbaum weniger als der Knoten ( <) und alle Elemente in seinem rechten Teilbaum sind größer als der Knoten (>).

    5
   / \
  3   6 
 / \   \
1   4   9    

Der oben gezeigte Baum ist ein binärer Suchbaum - der "Wurzel" -Knoten ist eine 5, und seine linken Teilbaumknoten (1, 3, 4) sind <5 und seine rechten Teilbaumknoten (6, 9) sind> 5. Rekursiv muss jeder der Teilbäume auch der Einschränkung des binären Suchbaums entsprechen: Im Teilbaum (1, 3, 4) ist die 3 die Wurzel, die 1 <3 und 4> 3.

Achten Sie auf den genauen Wortlaut der Probleme - ein "binärer Suchbaum" unterscheidet sich von einem "binären Baum".

36
Emmanuel Oddy

Wie jeder oben über den Unterschied zwischen binärem Baum und binärem Suchbaum erklärt hat, füge ich nur hinzu, wie man testet, ob der gegebene binäre Baum ein binärer Suchbaum ist.

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);

}

Hoffe es wird dir helfen. Es tut mir leid, wenn ich vom Thema abweiche, da es meiner Meinung nach wert ist, dies hier zu erwähnen.

13
Trying

Binary Tree steht für eine Datenstruktur, die aus Knoten besteht, die nurzwei haben kann Kinder Referenzen.

Binary Search Tree ( BST ) ist dagegen eine spezielle Form von Binary Tree Daten Struktur, bei der jeder Knoten einen vergleichbaren Wert hat und kleinere Kinder an den linken und größere Kinder an den rechten Wert angehängt sind.

Somit sind alle BST Binärbaum, jedoch können auch nur einige Binärbaum sein BST . Benachrichtigen Sie, dass BST eine Teilmenge von Binary Tree ist.

Also ist Binary Tree eher eine allgemeine Datenstruktur als Binary Search Tree. Außerdem müssen Sie angeben, dass Binary Search Tree ein sortiert ​​-Baum ist, während es für generische Binary Tree keine derartigen Regeln gibt.

Binärer Baum

EIN Binary Tree das ist nicht ​​a BST;

         5
       /   \
      /     \
     9       2
    / \     / \
  15   17  19  21

Binärer Suchbaum (sortierter Baum)

A Binary Search Tree das ist auch ein Binary Tree;

         50
       /    \
      /      \
     25      75
    /  \    /  \
  20    30 70   80

Binary Search Tree Node Eigenschaft

Beachten Sie auch, dass für jeden übergeordneten Knoten im BST ;

  • Alle linken Knoten haben einen kleineren Wert als der Wert des übergeordneten Knotens. Im oberen Beispiel sind die Knoten mit den Werten {20, 25, 30}, die alle links liegen (linke Nachkommen) von 50 sind, kleiner als 50.

  • Alle rechten Knoten haben einen höheren Wert als der Wert des übergeordneten Knotens. Im oberen Beispiel sind die Knoten mit den Werten {70, 75, 80}, die alle rechts liegen (rechte Nachkommen) von 50 sind, größer als 50.

Es gibt keine solche Regel für Binary Tree Node. Die einzige Regel für Binary Tree Node) besteht darin, zwei Kinder zu haben, sodass es sich von selbst erklärt, warum binary genannt wird.

10

Ein binärer Suchbaum ist eine spezielle Art von binärem Baum, der die folgende Eigenschaft aufweist: Für jeden Knoten n ist der Wert jedes untergeordneten Knotens im linken Teilbaum von n kleiner als der Wert von n, und der Wert jedes untergeordneten Knotens im rechten Teilbaum ist größer als der Wert von n.

10
Kaushik Lele

Binärbaum

Ein binärer Baum kann alles sein , das 2 Kinder und 1 Eltern hat. Es kann als verknüpfte Liste oder Array oder mit Ihrer benutzerdefinierten API implementiert werden. Sobald Sie beginnen, spezifischere Regeln hinzuzufügen, wird es zu einem spezialisierteren Baum . Die bekannteste Implementierung ist, dass kleinere Knoten links und größere rechts hinzugefügt werden.

Zum Beispiel ein beschrifteter Binärbaum der Größe 9 und der Höhe 3 mit einem Wurzelknoten mit dem Wert 2. Der Baum ist unsymmetrisch und nicht sortiert . https://en.wikipedia.org/wiki/Binary_tree

enter image description here

Im linken Baum hat A beispielsweise die 6 Kinder {B, C, D, E, F, G}. Sie kann rechts in den Binärbaum konvertiert werden.

enter image description here

Binäre Suche

Die binäre Suche ist eine Technik/ein Algorithmus, mit dem ein bestimmtes Element in der Knotenkette gefunden wird. Die binäre Suche funktioniert für sortierte Arrays .

Die binäre Suche vergleicht den Zielwert mit dem mittleren Element des Arrays. Wenn sie ungleich sind, wird die Hälfte eliminiert, in der das Ziel nicht liegen kann, und die Suche wird mit der verbleibenden Hälfte fortgesetzt, bis sie erfolgreich ist oder die verbleibende Hälfte leer ist. https://en.wikipedia.org/wiki/Binary_search_algorithm

enter image description here

Ein Baum, der die binäre Suche darstellt . Das hier durchsuchte Array ist [20, 30, 40, 50, 90, 100] und der Zielwert ist 40.

enter image description here

Binärer Suchbaum

Dies ist eine der Implementierungen des Binärbaums. Dies ist spezialisiert auf Suchen .

Datenstrukturen des binären Suchbaums und des B-Baums basieren auf binären Suchen .

Binäre Suchbäume (BST), manchmal auch als sortierte oder sortierte Binärbäume bezeichnet, sind ein bestimmter Containertyp : Datenstrukturen, in denen "Elemente" gespeichert sind (z. B. Nummern, Namen usw.) im Speicher. https://en.wikipedia.org/wiki/Binary_search_tree

Ein binärer Suchbaum der Größe 9 und Tiefe 3 mit 8 an der Wurzel. Die Blätter sind nicht gezeichnet.

enter image description here

Und schließlich ein großartiges Schema für den Leistungsvergleich bekannter Datenstrukturen und angewandter Algorithmen:

enter image description here

Bild entnommen aus Algorithmen (4. Auflage)

5
Teoman shipahi

Ein binärer Baum ist ein Baum, dessen Kinder niemals mehr als zwei sind. Ein binärer Suchbaum folgt der Invariante, dass das linke Kind einen kleineren Wert als der Schlüssel des Wurzelknotens haben soll, während das rechte Kind einen größeren Wert als der Schlüssel des Wurzelknotens haben soll.

4
nana yaah
  • Binärer Suchbaum: Beim Durchlaufen eines binären Baums werden die Werte der eingefügten Elemente sortiert
  • Binärer Baum: In keiner Art von Traversierung wird eine sortierte Reihenfolge gefunden
4
AlienOnEarth

Um zu überprüfen, ob ein gegebener Binärbaum ein Binärsuchbaum ist oder nicht, ist hier ein alternativer Ansatz.

Traverse Tree In Inorder Fashion (dh Left Child -> Parent -> Right Child), speichern Traversed Node Daten in einer temporären Variablen sagen wir temp, kurz vor dem Speichern in temp, Prüfe, ob die Daten des aktuellen Knotens höher sind als die des vorherigen oder nicht, dann break out, Tree ist kein binärer Suchbaum sonst bis zum Ende durchqueren.

Unten ist ein Beispiel mit 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;
}

Temp Variable außerhalb pflegen

3
Neeraj Jain

In einem binären Suchbaum sind alle Knoten in einer bestimmten Reihenfolge angeordnet - Knoten links von einem Wurzelknoten haben einen kleineren Wert als seine Wurzel, und alle Knoten rechts von einem Knoten haben Werte, die größer sind als der Wert von Wurzel.

1
Spencer Cheng

Ein Baum kann nur dann als Binärbaum aufgerufen werden, wenn die maximale Anzahl der untergeordneten Knoten zwei beträgt.

Ein Baum kann nur dann als binärer Suchbaum aufgerufen werden, wenn die maximale Anzahl von untergeordneten Elementen eines der Knoten zwei beträgt und das linke untergeordnete Element immer kleiner als das rechte untergeordnete Element ist.

0
jith912