Как распечатать диаграмму AVL на C ?

#c

#c

Вопрос:

Как я могу напечатать AVL на C , чтобы результат был таким:

 2   /    1 3  

Кроме того , независимо от того, какой длины номер, он будет отображаться нормально. И я использовал ООП. Вот мой узел:

 templatelt;typename Tgt; struct AVLTreeNode {  T data;  AVLTreeNodelt;Tgt;* LChild;  AVLTreeNodelt;Tgt;* RChild;  int height;  AVLTreeNode()  {  LChild = NULL;  RChild = NULL;  }  AVLTreeNode(T data)  {  LChild = NULL;  RChild = NULL;  this-gt;data = data;  }  AVLTreeNode(T d, AVLTreeNodelt;Tgt;* L, AVLTreeNodelt;Tgt;* R)  {  this-gt;data = d;  this-gt;LChild = L;  this-gt;RChild = R;  }  AVLTreeNode(const AVLTreeNodelt;Tgt;* N)  {  this-gt;data = N-gt;data;  this-gt;LChild = N-gt;LChild;  this-gt;RChild = N-gt;RChild;  } };   

Комментарии:

1. Печать дерева AVL ничем не отличается от печати двоичного дерева. Найдите в Интернете «двоичное дерево печати C » или более явно: «дерево AVL печати C «.

2. Я рекомендую использовать глобальную переменную для определения уровня «отступа».

3. Хорошо, я выполнил другие функции AVL, просто хочу узнать, как распечатать диаграмму AVL, я надеюсь посмотреть, как мой AVL работает интуитивно.

4. Если вам нужен узел других функций AVL, пожалуйста, позвоните мне

5. 1) Пройдитесь по дереву, пока не доберетесь до конечного узла. Во время обхода увеличьте переменную уровня или отступа. 2) Выведите количество пробелов, указанное переменной уровня или отступа, затем выведите данные в узле. 3) Вернитесь к родительскому узлу, уровню уменьшения или переменной отступа. 4) печать строк ссылки оставлена в качестве упражнения для операции.