Как распечатать двоичное дерево уровня по уровню с дефисами? - PullRequest
0 голосов
/ 13 апреля 2019

Я должен напечатать уровень двоичного дерева по уровням, как это:

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