读书人

C++ 二叉树的创建有关问题

发布时间: 2012-09-17 12:06:51 作者: rapoo

C++ 二叉树的创建问题
代码如下:
#include <iostream>
using namespace std;

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

node *CreateNode()
{
cout<<"elements:-1"<<endl;
int temp;
cin>>temp;
if(temp!=-1)
{
node *tempNode=new node();
if(NULL==tempNode)
{
cout<<"error to create new node"<<endl;
return NULL;
}
tempNode->data=temp;
tempNode->left=CreateNode();
tempNode->right=CreateNode();
}
else
{
return NULL;
}
}

void PreTravel(node *root)
{
if(root)
{
cout<<root->data<<" ";
PreTravel(root->left);
PreTravel(root->right);
}
}

int main(void)
{
node *root=CreateNode();
PreTravel(root);
system("pause");
return 0;
}

运行后main函数中的root始终无法得到数据,这是怎么回事?求解释

[解决办法]
if(temp!=-1)
{
node *tempNode=new node();
if(NULL==tempNode)
{
cout<<"error to create new node"<<endl;
return NULL;
}
tempNode->data=temp;
tempNode->left=CreateNode();
tempNode->right=CreateNode();
return tempNode;
}
else
{
return NULL;
}

读书人网 >C++

热点推荐