gpt4 book ai didi

c - 使用级别顺序在 n 叉树中输入元素

转载 作者:行者123 更新时间:2023-11-30 16:33:27 24 4
gpt4 key购买 nike

给定结构:

struct node {
int data;
struct node *next;
struct node *child;
};

如何在n叉树中逐级添加元素?这背后的原因是我想让我的树完整或接近完整。

可以使用任何形式的帮助、提示、建议。

用户输入数字n,这意味着每个节点可以有那么多的 child ,不能大于这个数量。问题是,我只知道添加 root 和之后的前 n 个元素。我不知道如何返回 root 之后的第一个元素,以便我现在可以将其他节点作为他的子节点等等。

Root -> NULL
|
V
Child-1.1 -> Child-1.2 -> ... -> Child-1.n -> NULL
| | |
| V V
| ... Child-1.n.1 -> ... -> NULL
V
Child-1.1.1 -> Child-1.1.2 -> ... -> NULL
|
... etc

最佳答案

在您的代码中,您检查左右子节点,因为您只有两个:

if(temp -> left != NULL){
Q = insertQ(Q, temp -> left);
}
else{
temp -> left = newNode;
free(Q);
return root;
}

if(temp -> right != NULL){
Q = insertQ(Q, temp -> right);
}
else{
temp -> right = newNode;
free(Q);
return root;
}
}

您现在需要做的是使用下一个指针进行迭代并确保到达n。像这样的东西:

for (int i = 1 ; i < n; ++i, temp = temp->next) {
if (temp->child) Q = insertQ(Q, temp->child);
if (!(temp->next) && i < n-1) {
// You don't have n nodes yet, so add the padding.
temp->next = new Node;
}
}

关于c - 使用级别顺序在 n 叉树中输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49752656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com