Um einen " Durchlauf " von einem binären Baum in Java zu tun bedeutet , eine algorithmische Verarbeitung der Knoten in eine gewisse Ordnung zu tun. A " stöbern " Durchlauf bedeutet, dass der Wurzelknoten erste , verarbeitet und dann den Rest des Baumes Knoten rekursiv verarbeitet . Die Traversal -Funktion wird einfach ausdrucken jeden Knoten besucht es auf der Konsole . Anleitung
1
Erstellen eines einfachen binären Suchbaum Klasse, die eine grundlegende Konstruktor, der Wert des Knotens initialisiert hat . Ebenfalls enthalten sollte ein Einsatz Methode, um einen Baum zu durchlaufen , und erstellen Sie einen neuen Knoten an der richtigen Stelle sein . " " public class BinaryTree { BinaryTree links, rechts BinaryTree ; int value ; öffentlichen BinaryTree (int v) {value = v ;} //Legen Sie einen Wert in den Baum public void insert ( int v ) {if ( v if ( links = = null) links = new BinaryTree (v) , sonst left.insert ( v); } else if ( v > value ) {if (rechts == null) rechts = new BinaryTree (v) , sonst right.insert (v) ; . }} } ""
2
Konstruieren Sie den root-Knoten des binären Baums , und fügt es einen Wert, der in der Nähe der Mittelwert der von den Objekten, die Speicherung werde ist das die Effizienz zu gewährleisten, da Ihre binären Baum muss ziemlich gut ausbalanciert werden, wenn Sie die Speicherung eine Verteilung der Zahlen von 1 bis 100, zum Beispiel 50 ein guter Wert für den Root-Knoten ist " " BinaryTree b = new BinaryTree (50 ), " . . "
3
Knoten einfügen in den Baum in einer bestimmten Reihenfolge . die binären Baum ist nicht Auto- Balancing, so Einfügen von Knoten in einer bestimmten Reihenfolge hilft, das Gleichgewicht zu halten. Dabei werden die Knoten sind Ort eine kurze und effizient ausgewogenen Baum zu machen " " b.Setzen (20); . b.Setzen (40); b.Setzen (10); b.Setzen (5); b.Setzen (45); b.Setzen ( 70); b.Setzen (60); b.Setzen (80); b.Setzen (55); b.Setzen ( 85); " "
4
Führen Sie eine preorder-Traversierung durch das Durchlaufen der der Root-Knoten , dann den linken Baum und schließlich die richtigen Baum . es ist einfach, diese rekursiv tun mit einem kleinen binären Baum , da er nicht überläuft den Stapel . Falls Ihr binären Baum ist sehr groß, die Traversal -Funktion umgesetzt werden sollten iterativ .
5
Fügen Sie eine neue Methode , vorbestellen , der BinaryTree Klasse. Hier wird die Methode druckt nur den Wert jedes Knotens besucht es . " " public void vorbestellen () { System.out.println ( value); if ( links = null ! ) left.preorder (); if ( rechts = null ! ) right.preorder (); } ""
6
Rufen Sie die neue Methode nach Ihrer Einsätze um die Knoten in preorder print " " b.preorder (); " .