gpt4 book ai didi

c - 在C中将元素插入BST

转载 作者:行者123 更新时间:2023-11-30 15:08:28 24 4
gpt4 key购买 nike

我有一个如下所示的结构类型:

typedef struct TreeNode{
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;

将元素添加到我的

TreeNode* insert(TreeNode *root, int val){
TreeNode* a;
a = root;
int i;
if(a==NULL){
a -> val = val;
a -> left = NULL;
a -> right = NULL;
}
else if(a->val < val){
return insert(root->left,val);
}
else if(a->val > val)
return insert(root->right,val);
}

当我评估它时,它没有给出任何输出。我有什么错?

最佳答案

  1. a == NULL情况下,需要为节点分配内存。否则 a -> val 是非法的。
  2. 还需要在代码中添加一个返回。您可以返回(a)。然后,当您调用该函数时,将其调用为 root = insert(root, val)

代码如下。

TreeNode* insert(TreeNode *root, int val){
TreeNode* a;
a = root;
int i;
if(a==NULL){
// Allocate memory here
a = malloc(sizeof (root));
if (a== NULL)
{
// Malloc error, You can exit the program or print a debug message here
}

a -> val = val;
a -> left = NULL;
a -> right = NULL;
}
else if(a->val < val){
return insert(root->left,val);
}
else if(a->val > val)
return insert(root->right,val);
return a;
}

关于c - 在C中将元素插入BST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361271/

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