首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-09-17 
C++ 二叉树的创建问题代码如下:#include iostreamusing namespace stdstruct node{int datanode *left

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;
}

热点排行