Die Höhe eines binären Baumes in Java

June 10

Effiziente Datenstrukturen Leistungsoptimierung des Programms erleichtert das Programm die Daten finden, die es braucht. Binäre Suche Bäume sind eine der effizientesten Datenstrukturen für eine geordnete Menge von Daten zu durchsuchen. Ob Sie die Datenstruktur eine organisierte binärer Suchbaum oder eine Norm Binärbaum ist, finden Sie den Baum Höhe in Java durch eine einfache rekursive Funktion.

Baumstruktur

Ein binärer Baum besteht aus einer Reihe von miteinander verbundenen Knoten. Jeder Knoten hat zwischen null und zwei untergeordnete Knoten. Jeder Knoten mit Ausnahme des Stammknotens hat genau einen Elternknoten. Der Wurzelknoten hat keine übergeordnete Knoten. Java verfügt nicht über eine eingebaute Binärbaum-Klasse, aber Sie können eigene von Grund auf neu erstellen oder laden Sie eine aus dem Internet.

Baum-Höhe

Die Höhe eines binären Baumes ist die maximale Anzahl von Knoten, nicht einschließlich den Stammknoten entlang einem einzigen vertikalen Durchlauf durch die binäre Struktur. Beispielsweise müsste ein binärer Baum mit nur einem Knoten eine Höhe von 0 (null). Ein binärer Baum mit einem Stammknoten mit zwei untergeordnete Knoten hätte eine Höhe von eins. Wenn einer von diesen untergeordneten Knoten eigene Kindknoten hatte, hätte der Baum eine Höhe von drei.

Theorie

Bestimmen die Höhe eines binären Baumes in Java am einfachsten mit einer rekursiven Methode. Diese Methode akzeptiert einen einzelnen Knoten als Argument und gibt die Höhe der binären Struktur unterhalb des Knotens Argument zurück. Die Methode nennt sich wieder für jeden der das Argument des Knotens untergeordneten Knoten und speichert das Ergebnis als eine Ganzzahlvariable. Es vergleicht die beiden Variablen, die die Höhe jeder einzelnen untergeordneten darstellen, addiert 1 zu den größeren der beiden Variablen und gibt das Ergebnis zurück. Wenn der an die Methode übergebene Argument-Knoten null ist, gibt die Methode minus eins.

Algorithmus

Die folgende Java-Methode berechnet die Höhe eines binären Baumes. Es akzeptiert den Stammknoten eines binären Baumes als Argument. Alternativ könnten Sie einen anderen Knoten der binären Struktur an die Methode, die Höhe der Struktur unterhalb dieses Knotens zu finden übergeben. Der folgende Code setzt voraus, dass jeder Knoten der binären Struktur vom Typ "BinaryTreeNode ist" und jeder Knoten enthält Methoden, die zurückgeben der linken und rechten Kinder dieses Knotens, genannt "GetLeftChild" und "GetRightChild."

private Int FindHeight (BinaryTreeNode CurrentNode) {}{if(CurrentNode.Equals(null))}

return -1;

}Int LeftHeight = findHeight(currentNode.getLeftChild());Int RightHeight = findHeight(currentNode.getRightChild());Int GreatestHeight = Math.max (LeftHeight, RightHeight);Rückkehr GreatestHeight;}