Java nicht einen binären Baum Klasse , obwohl es einfach ist , eine Version der Datenstruktur präsentieren eine inorder Traversal tun . A " Traversal " eines binären Baum ist eine formelhafte Verfahren für den Besuch jeder Knoten auf dem binären Baum einmal. Ein inorder Traversal wird diese in sortierter Reihenfolge zu tun. Traversal wird oft als eine Art Iterator ( wie eine Liste Iterator ) oder durch eine Methode, die eine Callback-Methode für jeden Knoten rufen umgesetzt . Sie können jedoch , dies zu tun , ohne Rückrufe oder Iteratoren , statt Druck auf die Konsole jeder Knoten besucht. Anleitung
1
Erstellen eines einfachen binären Suchbaum Klasse. An diesem Punkt müssen Sie nur eine grundlegende Konstruktormethode , dass der Knoten den Wert und ein Insert -Methode initialisiert . Die Insert-Methode wird durchlaufen einen Baum und einen neuen Knoten in der richtigen Stelle. " " 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
Erzeugen Sie die Instanz ( Knoten ) der binären Baum, der Root-Knoten sein wird wie jeder andere Knoten , der Root-Knoten , einen Wert haben muss Es ist normalerweise am besten auf einen Wert nahe dem Median der Objekte Sie die Speicherung wählen , als binäre Bäume sollten so ausgewogen wie möglich " " BinaryTree b = new BinaryTree (50 ), " . "
3 < . . p> Legen Sie Knoten in den Baum in einer bestimmten Reihenfolge , um das Gleichgewicht zu halten , da diese binären Baum ist nicht auto -Balancing diesem Beispiel wird die kleinste Baum möglich sein, um die Effizienz zu erhalten " " 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
bewegen sich über den Baum mit einem inorder Traversal der linke Baum wird zuerst durchlaufen , gefolgt von der root-Knoten , und dann die rechte Baum ist . verfahren. Rekursion ist der Code lediglich drei Zeilen . Doch seit Rekursion nimmt Stapelspeicherplatz , es sollte sorgfältig verwendet werden. Mit einem kleinen und ausgewogene binären Baum , Rekursion nicht überläuft den Stapel .
5 < p> in eine neue Methode , um die Java- Klasse namens BinaryTree inorder " " public void inorder () {if (links = null ! ) left.inorder (); . System.out.println ( value); if ( rechts = null ) right.inorder (); } ""
6
Rufen Sie den inorder Verfahren nach Ihrer Einsätze , um die Knoten in sortierter Reihenfolge zu drucken. " " b.inorder (); "