如何从级别顺序遍历构造完整的树?
总计= 7个节点
20,8,22,4,12,-1,-1到
20
/ \
8 22
/ \ / \
4 12 -1 -1
你也可能在二叉树中有一个带-1的虚节点
从此级别订单构造树 这不可能吗?
答案 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>);
}
答案 1 :(得分:-2)
首先你应该找到透视值。然后你会在执行这些操作后对元素进行排序(任何排序算法将使用更好的方式进行冒泡排序)。