如何从层次顺序遍历构建完整的树
How to construct complete tree from level order traversal
如何从层次顺序遍历构建完整的树?
总计=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方式进行冒泡排序(。
相关文章:
- 有什么方法可以遍历结构吗
- 在循环中按顺序遍历成员变量
- 遍历模板参数
- 在遍历处理程序的向量时注册和注销处理程序
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 遍历并行数组以确定C++中的最大数字
- 遍历顺序由 std::文件系统directory_iterator给出
- 遍历链表时的无限循环
- 遍历unordered_map向量
- 从预序遍历构造 bst 的 c++ 和 python 解决方案之间的区别
- C++声明双链表,使用两个 for 循环双向遍历列表并打印
- 如何正确地推回然后遍历堆中对象的向量?
- 遍历二维数组的所有子数组
- 如何在可变参数模板函数中遍历可变参数元组?
- 避免在遍历 IShellItemArray 时出现代码重复
- 从特定键开始遍历地图
- 关于链表遍历和调试的困惑
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 从给定的预序遍历构建二叉树
- 如何从层次顺序遍历构建完整的树