Я новичок. Я пытаюсь напечатать уровень дерева avl по уровню, и он должен быть справа налево. но результат слева направо. Надеюсь, вы сможете решить мою проблему. Вот кусок моего исходного кода:Печать AVL Уровень дерева по уровню (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);
}
Результат:
80
70
50
40
30
Результат, который я хочу, должно быть так:
30\
40\
50
70/
80/
как, если я хочу распечатать его напрямую? –
@Michael Loew Как я предложил в своем последнем предложении: Поверните дерево в порядке слева-середина, заменив следующие строки '' printOrder (treePtr-> rightPtr, row); '' и ''printOrder (treePtr-> leftPtr , строка); ' ' – cwschmidt