我收到了这个错误,我无法想到它背后的任何好理由
帮帮我
我尝试了一些东西,却无法接受它。
这是我的代码:
#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;
答案 0 :(得分:0)
此行root = getnewnode;
尝试将函数分配给int
变量。
要调用函数,请使用括号:root = getnewnode(data);