Antworten:
Binärbaum: Baum, in dem jeder Knoten bis zu zwei Blätter hat
1
/ \
2 3
Binärer Suchbaum: Wird für die Suche verwendet . Ein Binärbaum, in dem das linke untergeordnete Element nur Knoten mit Werten enthält , die kleiner als der übergeordnete Knoten sind, und in dem das rechte untergeordnete Element nur Knoten enthält, deren Werte größer oder gleich dem übergeordneten Knoten sind.
2
/ \
1 3
Der binäre Baum ist eine spezielle Baumform mit zwei Kindern (linkes Kind und rechtes Kind). Es ist einfach eine Darstellung von Daten in der Baumstruktur
Der binäre Suchbaum (BST) ist ein spezieller Typ eines binären Baums, der folgende Bedingung erfüllt:
Ein Binärbaum besteht aus Knoten, wobei jeder Knoten einen "linken" Zeiger, einen "rechten" Zeiger und ein Datenelement enthält. Der "Wurzel" -Zeiger zeigt auf den obersten Knoten im Baum. Der linke und der rechte Zeiger zeigen 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, bei dem die Knoten in der richtigen Reihenfolge angeordnet sind: Für jeden Knoten sind alle Elemente in seinem linken Teilbaum kleiner 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 die Einschränkung des binären Suchbaums erfüllen: 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".
Wie jeder oben über den Unterschied zwischen Binärbaum und Binärsuchbaum erklärt hat, füge ich nur hinzu, wie man testet, ob der angegebene Binärbaum ein Binärsuchbaum 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 ablenke, da ich der Meinung bin, dass es sich lohnt, dies hier zu erwähnen.
Binary Tree steht für eine Datenstruktur , die aus besteht Knoten , die kann nur haben zwei Kinder Referenzen.
Binary Search Tree ( BST ) hingegen ist eine spezielle Form der Binary Tree- Datenstruktur, bei der jeder Knoten einen vergleichbaren Wert hat und Kinder mit kleinerem Wert links und Kinder mit größerem Wert rechts zugeordnet sind.
Somit sind alle BST 's sind Binary Tree jedoch nur einige Binary Tree ' s kann auch sein , BST . Benachrichtigen Sie, dass BST eine Teilmenge des Binärbaums ist .
Der binäre Baum ist also eher eine allgemeine Datenstruktur als der binäre Suchbaum . Außerdem müssen Sie benachrichtigen, dass der binäre Suchbaum ein sortierter Baum ist, während es für den generischen binären Baum keine solchen Regeln gibt .
A Binary Tree
was nicht a ist BST
;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
Ein binärer Suchbaum, der auch ein binärer Baum ist ;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
Benachrichtigen Sie dies auch für jeden übergeordneten Knoten in der 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 sich alle links ( linke Nachkommen ) von 50 befinden, kleiner als 50.
Alle rechten Knoten haben einen größeren Wert als der Wert des übergeordneten Knotens. Im oberen Beispiel sind die Knoten mit den Werten {70, 75, 80}, die sich alle rechts ( rechte Nachkommen ) von 50 befinden, größer als 50.
Es gibt keine solche Regel für den Binärbaumknoten . Die einzige Regel für den Binärbaumknoten besteht darin, zwei Kinder zu haben, sodass er sich selbst erklärt, warum er als Binär bezeichnet wird .
Ein binärer Suchbaum ist eine spezielle Art von Binärbaum, der die folgende Eigenschaft aufweist: Für jeden Knoten n ist der Wert jedes Nachkommenknotens im linken Teilbaum von n kleiner als der Wert von n, und der Wert jedes Nachkommenknotens im rechten Teilbaum ist größer als der Wert von n.
Binärer Baum
Binärbaum kann alles sein, was 2 Kinder und 1 Elternteil hat. Es kann als verknüpfte Liste oder Array oder mit Ihrer benutzerdefinierten API implementiert werden. Sobald Sie anfangen, spezifischere Regeln hinzuzufügen, wird der Baum spezialisierter . Die bekannteste Implementierung ist, dass links kleinere und rechts größere Knoten hinzugefügt werden.
Zum Beispiel ein beschrifteter Binärbaum der Größe 9 und Höhe 3 mit einem Wurzelknoten, dessen Wert 2 ist. Der Baum ist unausgeglichen und nicht sortiert . https://en.wikipedia.org/wiki/Binary_tree
Im Baum links hat A beispielsweise die 6 Kinder {B, C, D, E, F, G}. Es kann rechts in den Binärbaum konvertiert werden.
Binäre Suche
Die binäre Suche ist eine Technik / ein Algorithmus, mit der ein bestimmtes Element in der Knotenkette gefunden wird. Die binäre Suche funktioniert bei sortierten Arrays .
Die binäre Suche vergleicht den Zielwert mit dem mittleren Element des Arrays. Wenn sie ungleich sind, wird die Hälfte, in der das Ziel nicht liegen kann, eliminiert und die Suche in der verbleibenden Hälfte fortgesetzt, bis sie erfolgreich ist oder die verbleibende Hälfte leer ist. https://en.wikipedia.org/wiki/Binary_search_algorithm
Ein Baum, der die binäre Suche darstellt . Das hier gesuchte Array ist [20, 30, 40, 50, 90, 100] und der Zielwert ist 40.
Binärer Suchbaum
Dies ist eine der Implementierungen des Binärbaums. Dies ist auf die Suche spezialisiert .
Binäre Suchbaum- und B-Baum-Datenstrukturen basieren auf binärer Suche .
Binäre Suchbäume (BST), manchmal auch geordnete oder sortierte Binärbäume genannt, sind eine bestimmte Art von Container : Datenstrukturen, in denen "Elemente" (wie Zahlen, Namen usw.) gespeichert sind. 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.
Und schließlich ein großartiges Schema für den Leistungsvergleich bekannter Datenstrukturen und angewandter Algorithmen:
Bild aus Algorithmen (4. Auflage)
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 sollte, während das rechte Kind einen größeren Wert als der Schlüssel des Wurzelknotens haben sollte.
Um zu überprüfen, ob ein bestimmter Binärbaum ein binärer Suchbaum ist, ist hier ein alternativer Ansatz.
Baum in unordentlicher Weise durchlaufen (dh linkes Kind -> Eltern -> rechtes Kind), durchquerte Knotendaten in einer temporären Variablen speichern , sagen wir temp , kurz vor dem Speichern in temp , prüfen, ob die Daten des aktuellen Knotens höher sind als die vorherigen oder nicht . Dann brechen Sie es einfach aus, Baum ist kein binärer Suchbaum, sonst durchlaufen Sie bis zum Ende.
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;
}
Behalten Sie die Temperaturvariable außerhalb bei
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 als der Wert von sind Wurzel.
Ein Baum kann genau dann als Binärbaum aufgerufen werden, wenn die maximale Anzahl von untergeordneten Elementen eines der Knoten zwei beträgt.
Ein Baum kann genau 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.