Dies ist gegenüber dem binären Suchbaum. Ich durchquere den Baum auf zwei Arten. 1) InOrder Traversal Ein Inorder-Traversal von Baum t ist ein rekursiver Algorithmus, der dem linken Teilbaum folgt; Sobald keine weiteren Teilbäume mehr zu verarbeiten sind, verarbeiten wir den rechten Teilbaum. Die Elemente werden in der Reihenfolge von links nach rechts verarbeitet. 2) PostOrder Traversal Ein Postorder-Traversal von Baum t ist ein rekursiver Algorithmus, der den linken und rechten Teilbäumen folgt, bevor das Wurzelelement verarbeitet wird. Die Elemente werden in der Reihenfolge Links-Rechts-Wurzel verarbeitet.Wie genau funktioniert die Druckanweisung in diesen beiden Methoden?
Ich bin verwirrt darüber, wie die Rekursionsmethoden und print-Anweisungen arbeiten. Könntest du mich bitte aufklären?
static void inOrder(Leaf root){
if(root != null){
inOrder(root.left);
System.out.print(root.value+" ");
inOrder(root.right);
}
}
static void postOrder(Leaf root){
if(root != null){
postOrder(root.left);
postOrder(root.right);
System.out.print(root.value+" ");
}
}
Was genau ist das Problem damit? Tipp: Der beste Weg wäre, ein paar Bäume auf ein Blatt Papier zu zeichnen und mit der Hand zu überqueren. –
Sie können auch versuchen, den iterativen Code zu implementieren. Es gibt Ihnen eine gute Vorstellung davon, wie der Rekursionsstapel funktioniert. –