Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C冲突类型错误,而实际上没有冲突类型?_C_Binary Search Tree - Fatal编程技术网

C冲突类型错误,而实际上没有冲突类型?

C冲突类型错误,而实际上没有冲突类型?,c,binary-search-tree,C,Binary Search Tree,因此,我在.h文件中声明了函数,为此,我只是复制并粘贴了函数声明,并添加了一个分号,所以我不知道错误来自何处 资料来源: struct node* remove(struct node* node, int key) { if(search(root,removeMe)!=NULL){ struct node* temp=search(root,removeMe); if(temp->left==NULL && temp-&

因此,我在.h文件中声明了函数,为此,我只是复制并粘贴了函数声明,并添加了一个分号,所以我不知道错误来自何处

资料来源:

struct node* remove(struct node* node, int key)
{
    
    if(search(root,removeMe)!=NULL){
        struct node* temp=search(root,removeMe);
        if(temp->left==NULL && temp->right==NULL)
        {
            temp=NULL;
            return node;
        }
    }
    return node;
}
标题:

#ifndef PROJECT2_BST_H
#define PROJECT2_BST_H typedef struct node {
    int key;
    struct node* left;
    struct node* right; }; struct node* insert(struct node* node, int key); void inorder(struct node *root);

//void quit(struct node *root); struct node* search(struct node* root,
int key);  struct node* remove(struct node* node, int key);

#endif //PROJECT2_IO_H }

您的问题是
remove
是一个标准库函数,通常在
stdio.h
中定义为

int remove (const char *__filename)

因此,我建议您更改函数的名称。也许在这种情况下,您可以为每个函数名添加前缀,例如
节点
,以防止名称冲突;因此,
node\u remove
node\u insert
,等等。

头的格式如图所示,头不应编译。请确保显示的代码与标题中的实际代码相匹配。我可以猜,但我可能猜错了。那个头代码看起来像是扔进了搅拌机。你能澄清一下吗?值得注意的是,你的
remove()
函数实际上并没有从链表中删除内容,你只是在更改一个废弃的局部变量,它是指针的副本,如果它这样做了,那就是内存泄漏。它还假定
temp
是一个有效的指针,在不首先检查的情况下继续并取消引用它,这是未定义的行为,如果
search
返回不一致的结果或在线程化代码中,则应返回不一致的结果。您还可以执行
search
两次,一次丢弃结果,第二次捕获结果。您应该搜索一次并捕获它。