我必须像这样逐级打印二进制树:
(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;
};