-2
초보자입니다. 수준별로 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