2016-04-18 1 views
0

Я реализую деревья AVL в C, и я хочу напечатать все элементы дерева в трех столбцах в консоли.Печать дерева 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 Строка 3 Что я хочу: Строка 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; 

}