编译时错误:无法将'node *(int)'转换为'node *'

时间:2016-05-19 14:11:13

标签: c++

我收到了这个错误,我无法想到它背后的任何好理由 帮帮我
我尝试了一些东西,却无法接受它。

这是我的代码:

#include<iostream>

using namespace std;

struct node{
    int data;
    node *left;
    node *right;
};
node* insert(node* root, int data);
node* getnewnode(int data);

int main()
{
    node *root;
    root= NULL;

    root=insert(root,12);
    cout<<root->data;
    root=insert(root,22);
    cout<<root->data;
    root=insert(root,32);
    cout<<root->data;
    root=insert(root,62);
    cout<<root->data;
    root=insert(root,72);
    cout<<root->data;
    root=insert(root,90);
    cout<<root->data;
    root=insert(root,125);
    cout<<root->data;
    root=insert(root,15);
    cout<<root->data;
}

node* getnewnode(int data)
{

    node* newnode = new newnode();
    (*newnode).data=data;
    (*newnode).left=(*newnode).right=NULL;
    return newnode;
}

node* insert(node* root, int data)
{
    if(root==NULL)
        root = getnewnode();
    else if(data<(*root).data)
        (*root).left=insert((*root).left,data);
    else
        (*root).right=insert((*root).right,data);

    return root;
}

我想知道为什么会出现这个错误,以及如何将其删除。

When I compile it, I got this error:

>prog.cpp: In function 'node* insert(node*, int)':  
prog.cpp:48:14: error: cannot convert 'node*(int)' to 'node*' in assignment  
     root = getnewnode;  

1 个答案:

答案 0 :(得分:0)

此行root = getnewnode;尝试将函数分配给int变量。

要调用函数,请使用括号:root = getnewnode(data);