Ich bin ein Anfänger. Ich versuche, einen Avl-Baum Level für Level zu drucken und es sollte von rechts nach links sein. aber das Ergebnis von links nach rechts. Ich hoffe du kannst mein Problem lösen. Hier ist das Stück von meinem Quellcode:Drucken AVL-Tree Level für Level (C++)
void printOrder(TreeNode *treePtr, int *row) {
if(treePtr != NULL){
(*row)++;
printOrder(treePtr->rightPtr,row);
int i;
for(i=0;i<(*row);i--)
printf("\t");
printf("%d\n", treePtr->data);
printOrder(treePtr->leftPtr,row);
(*row)--;
}
}
void printTree(TreeNode *treePtr) {
int row = 0;
printOrder(treePtr,&row);
}
Das Ergebnis:
80
70
50
40
30
Das Ergebnis, das ich sollte so sein wollen:
30\
40\
50
70/
80/
wie, wenn ich es direkt drucken möchte? –
@Michael Loew Wie ich in meinem letzten Satz vorgeschlagen habe: Durchsuche den Baum in der Reihenfolge von links nach rechts, indem du die folgenden Zeilen austauschst: '' printOrder (treePtr-> rightPtr, row); ''und'' printOrder (treePtr-> leftPtr , Reihe); – cwschmidt