2016-04-18 83 views
0

我在C中实现AVL树,我想在控制台的三列中打印树的所有元素。在列中打印AVL树

我有这样的:

void printInOrder(nodo * raiz){ 
    if(raiz!=NULL){ 
    printInOrder(raiz->esq); 
    printf("%s\n",raiz->codigo); 
    printInOrder(raiz->dir); 
    } 
} 

任何人都知道如何打印输出分三路?

+0

善有善报,在第1列,第2列,第3列?请显示一个示例树(可能是7-8个节点)和预期的输出。就目前而言,没有一种简单的方法来回答你的问题。 –

+0

如果你有这样的事情: 'code' 串1 /\ 字符串2字符串3 /\ 字串4字串5 您将结束: 字串4 字符串2 字串5 串1串 我想要的是: 串4串5串3 串2串1 –

+0

请添加信息的问题,你可以将其格式化sowe有机会了解你在做什么。 –

回答

0

这就是我正在寻找:

int printInOrder(nodo *root, int count){ 
if(root!=NULL){ 
    count=printInOrder(root->left,count); 
    count++; 
    if(count%PRINT_COLS==0 && count!=0) printf("%s \n", root->code); 
    else printf("%s \t\t", root->code); 
    if(count%(2*10*PRINT_COLS)==0 && count!=0){getch();} 
    count=printInOrder(root->right, count); 
} 
return count; 

}