gpt4 book ai didi

c - 错误 : Conflicting types for 'remove'

转载 作者:行者123 更新时间:2023-12-02 01:21:27 25 4
gpt4 key购买 nike

我在定义删除函数的那一行收到错误消息“'删除'的类型冲突”。此错误的大多数情况发生在函数声明之前调用函数时。但是,我在 main 函数中调用我的 remove() ,同时事先定义了它。那么,为什么会报错?!?

    #include<stdio.h>
#include<stdbool.h>

struct node
{
int data;
struct node* left;
struct node* right;
};

struct node* newNode(int x)
{
struct node* temp=(struct node*)malloc(sizeof(struct node));
temp->data=x;
temp->left=NULL;
temp->right=NULL;
return temp;
}

struct node* insert(struct node* root,int x)
{
if (root==NULL)
root=newNode(x);
else if (x<=root->data)
root->left=insert(root->left,x);
else
root->right=insert(root->right,x);
return root;
}

struct node* remove(struct node* root,int x)
{
if (root==NULL)
printf("Node not found !\n");
else if (x==root->data)
{
struct node* temp=root;
root=NULL;
free(temp);
printf("Node removed !\n");
}
else if (x<=root->data)
root->left=remove(root->left,x);
else
root->right=remove(root->right,x);
return root;
}

bool search(struct node* root,int x)
{
if (root==NULL)
return false;
else if (x==root->data)
return true;
else if (x<=root->data)
return search(root->left,x);
else
return search(root->right,x);
}

void main()
{
struct node* root=NULL;
root=insert(root,20);
root=remove(root,10);
root=insert(root,8);
root=remove(root,10);
root=insert(root,22);
root=remove(root,22);
root=insert(root,21);
root=remove(root,10);
root=insert(root,12);
root=remove(root,12);
root=insert(root,16);
root=remove(root,10);
root=insert(root,0);
root=remove(root,10);
root=insert(root,11);
root=remove(root,10);
root=remove(root,11);
printf(search(root,10)?"Found\n":"Not Found\n");
printf(search(root,20)?"Found\n":"Not Found\n");
printf(search(root,11)?"Found\n":"Not Found\n");
printf(search(root,17)?"Found\n":"Not Found\n");
}

最佳答案

在编译你的代码时,我得到了这个:

/tmp/x1.c:32: error: conflicting types for ‘remove’
/usr/include/stdio.h:154: error: previous declaration of ‘remove’ was here

如您所见,stdio.h 中声明了一个名为remove 的函数。这与您的定义相冲突。

您需要重命名您的函数,以免它与 stdio.h 中的定义冲突。

关于c - 错误 : Conflicting types for 'remove' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40021144/

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