如何从级别顺序遍历构造完整的树

时间:2016-08-25 12:08:52

标签: c++ c

如何从级别顺序遍历构造完整的树?

总计= 7个节点

20,8,22,4,12,-1,-1到

    20
   /  \
  8    22
 / \   / \
4  12 -1  -1  

你也可能在二叉树中有一个带-1的虚节点

从此级别订单构造树 这不可能吗?

2 个答案:

答案 0 :(得分:1)

看起来像是一个简单的插入给我。 如果您按指定的顺序拥有节点的值,则只运行递归插入。

void insert(node_t **root, int val)
{
      if (*root == NULL) {
            *root = malloc(sizeof(node_t));
            *root->val   = val;
            *root->left  = NULL;
            *root->right = NULL;
       } else if ((*root)->val >= val) {
            insert(&(*root)->left, val);
       } else {
            insert(&(*root)->right, val);
       }
 }

在您的主要功能中,您可以按如下方式调用它:

int main (void)
{
     node_t *root = NULL;
     // call this with each value in
     insert(&root, <your value>);
 }
  • 你当然需要定义一个node_t结构,但是你得到了要点
  • 此代码可能会也可能不会编译,我已在手机上输入

答案 1 :(得分:-2)

首先你应该找到透视值。然后你会在执行这些操作后对元素进行排序(任何排序算法将使用更好的方式进行冒泡排序)。