gpt4 book ai didi

error-handling - 二进制搜索:please tell me whats wrong here

转载 作者:行者123 更新时间:2023-12-03 08:58:04 24 4
gpt4 key购买 nike

我尝试了二叉树数据结构,但发现它无法正常工作并给出错误。请更正我的代码。谢谢!

它发出警告,但是在main中输入后,它将停止运行。

#include<stdlib.h>
#include<stdio.h>
typedef struct
{
int item;
struct node * leftc;
struct node * rightc;
}node;

void create(int key, node **tree )
{
if(*tree ==0)
{
(*tree)= (node *)malloc(sizeof(node *));
(*tree)->item=key;
(*tree)->leftc=((*tree)->rightc)=NULL;
}
else
{
if(key >= (*tree)->item )
{
create(key, &((*tree)->rightc));
}
else if(key<(*tree)->item)
{
create(key, &((*tree)->leftc));
}
}
}

node * search(int key, node * tree)
{
if(tree !=NULL)
{
if(key == tree->item)
return tree;
else if(key > tree->item)
search(key, tree->rightc);
else
search(key, tree->leftc);
}
return NULL;
}

void cut(node * tree)
{
if(tree != NULL)
{
cut(tree->leftc);
cut(tree->rightc);
free(tree);
}
}

void print_preorder(node * tree)
{
if (tree) {
printf("%d\n",tree->item);
print_preorder(tree->leftc);
print_preorder(tree->rightc);
}
}


int main()
{
node * root=NULL;
create(9,&root);
create(16,&root);
create(24,&root);
create(6,&root);

return 0;

}

最佳答案

更改

typedef struct
{
int item;
struct node * leftc;
struct node * rightc;
}node;


typedef struct node
{
int item;
struct node * leftc;
struct node * rightc;
}node;

在您的结构中,您引用“结构节点”,因此您需要名称才能使其正确引用自身。当然,在typedef之后,您可以将其称为节点。

测试程序可以编译,并且可以使用其他代码正常运行。

关于error-handling - 二进制搜索:please tell me whats wrong here,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17328391/

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