如何用连字符逐级打印二叉树?

时间:2019-04-13 20:24:40

标签: c printing binary-tree

我必须像这样逐级打印二进制树:

          (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;
}; 

0 个答案:

没有答案