0
#include<stdio.h>
#include<stdlib.h>

typedef struct              //create a pointer structure
{
int data;
struct node *left;
struct node *right;
} node;

node *insert(node *root, int x);

//Insert Function
node *insert(node *root, int x)    //Line 53        
{    
    if(!root)
    {
        root = new_node(x);
        return root;
    }

    if (root->data > x)
    {
        root->left = insert(root->left, x);   //Line 63
    }

    else 
    {
        root->right = insert(root->right, x);  // Line 68
    }

    return root;
}

编译时出现以下错误:

:在函数“插入”中:

:63:3: 警告:从不兼容的指针类型传递“插入”的参数 1 [默认启用]

:53:7: 注意:预期的 'struct node *' 但参数的类型是 'struct node *'</p>

:63:14: 警告:来自不兼容指针类型的赋值 [默认启用]

:68:3: 警告:从不兼容的指针类型传递“插入”的参数 1 [默认启用]

:53:7: 注意:预期的 'struct node *' 但参数的类型是 'struct node *'</p>

:68:15: 警告:来自不兼容指针类型的赋值 [默认启用]

  1. 为什么我的插入函数中的第一个参数与我传递给它的参数不兼容?
  2. 如何将指针分配给“结构指针”?
4

1 回答 1

0

将结构定义更改为

struct node             //create a pointer structure
{
    int data;
    struct node *left;
    struct node *right;
};

和函数原型

struct node *insert(struct node *root, int x);
于 2013-03-08T06:17:37.920 回答