Я должен напечатать уровень двоичного дерева по уровням, как это:
(5,g)
/ \
(3,f) (6,n)
/ \
(1,k) (2,c)
и он должен напечатать
-(6,n)
(5,g)
--(2,c)
-(3,f)
--(1,k)
Дефисы - это уровень, на котором находится узел.
Часть о печати это, я думаю, я уже понял:
void print_tree (binario_t tree) {
while (tree != NULL) {
print_tree (tree -> right);
printf (...);
print_tree (tree -> left);
}
}
Я не могу понять, как считать уровни и печатать дефисы.
Вот определения, используемые для дерева:
struct rep_info {
int num;
char *frase;
};
struct rep_binario {
info_t dato;
rep_binario *left;
rep_binario *right;
};