Binary Bäume sind komplexe Datenstrukturen in Computerprogrammen verwendet werden, um Daten im Speicher mit einem gemeinsamen Speicher -Algorithmus zu speichern. Durch Verwendung dieser Art von Algorithmus , können Daten in einer stabilen Muster gespeichert werden , so dass das Abrufen und Durchsuchen von Daten zu erleichtern. Java -Programmierer, die Gestaltung binäre Bäume sind mehr als wahrscheinlich auch der Gestaltung Algorithmen , um diese Datenstrukturen zu durchqueren. Es gibt drei Möglichkeiten, um binäre Bäume durchlaufen : in Ordnung , jetzt vorbestellen , und post-order . Things You
Java Development Kit ( JDK) brauchen
Text Editor
anzeigen Weitere Anweisungen
1
Durchqueren Sie die binären Baum mit in -order -Traversal . Unter der Annahme, dass die Klasse "BT " einen binären Baum repräsentiert , zeigt der folgende Code , wie der Baum in Ordnung zu drucken. Jeder Knoten weist einen linken und rechten Zeiger, der auf der linken und rechten Knoten des aktuellen Knotens , zusammen mit einem Datenelement, das den Wert darstellt. Die in - order Durchlauf wird die linke Knoten zuerst durchqueren bis null schlagen , und der Druck der übergeordnete Knoten vor Durchlaufen rechts und vorne beginnen . Das bedeutet, dass jeder Knoten nur drucken , wenn alle ihre linke Kindknoten gedruckt wurden zuerst:
public class BT {
public void inOrder (Node x ) {
< p > if ( x == null ) {return ; //Rekursion stoppt , wenn es keinen Knoten }
inOrder ( x.left ); //immer durchqueren links firstprint x.data //drucken Sie die Daten einmal der linke Knoten returnsinOrder ( x.right ); //Durchquerungsrecht }
2
Traverse den Baum in pre-order . Dieser Auftrag ist ähnlich in Ordnung , außer , dass der Druck des Knotens kommt vor jedem Durchlauf . So wird der Knoten ausdrucken seinen Wert , und dann links überqueren . Dann, wenn die Rekursion an den Knoten kehrt nach Durchlaufen links , wird der Knoten dann nach rechts durchqueren. Dies bedeutet, dass der Knoten druckt immer selbst vor jeder untergeordnete Knoten Druck:
public void preOrder (Node x ) {
if ( x == null ) {return ; //Rekursion stoppt , wenn es gibt keinen Knoten }
Druck x.data //printinOrder ( x.left ); //Traverse leftinOrder ( x.right ); //Durchquerungsrecht }
3
Traverse den Baum post-order . Das ist das Gegenteil von dem Pre-Order -Traversal . Ein Knoten wird immer auf dem linken oder rechten Nodes suchen, bevor das Drucken selbst , was bedeutet, dass alle anderen untergeordneten Knoten unten wird es zuerst zu drucken :
public void postOrder (Node x ) {
if ( x == null ) {return ; //Rekursion stoppt , wenn es keinen Knoten }
inOrder ( x.left ); //Traverse leftinOrder ( x.right ); //Traverse rightprint x.data ; //print}