如何从层次顺序遍历构建完整的树

How to construct complete tree from level order traversal

本文关键字:构建 遍历 层次 顺序      更新时间:2023-10-16

如何从层次顺序遍历构建完整的树?

总计=7个节点

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

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

你可能在二叉树中也有-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>);
 }
  • 当然,您需要定义一个nodet结构,但是您得到了要点
  • 这段代码可能编译,也可能不编译,我已经在手机上输入了

首先应该找到枢轴值。那么在执行这些操作之后,您会对元素进行排序吗(任何排序算法都将使用.better方式进行冒泡排序(。