主题:c++二叉树问题,很简单,但是我找不出错误!!
这是我写的一个关于二叉树创建与遍历的C++程序,在VC++6.0中运行时不知道在哪里出了死循环,因为我本来不会deburg调试,所以希望那位高手给我解答一下:感激不尽!!
# include<iostream>
using namespace std;
struct treenode{
int data;
treenode * lchild,*rchild;
};
treenode * treecreate(treenode *root)
{
root=new treenode;
bool l,r;
cout<<"请输入节点值:";
cin>>root->data;
cout<<"该节点有没有左节点?(如果有输入1,如果没有,输入0)";
cin>>l;
if(l) treecreate(root->lchild);
else root->lchild=NULL;
cout<<"该节点有没有右节点?(如果有,输入1,如果没有,输入0)";
cin>>r;
if(r) treecreate(root->rchild);
else root->rchild=NULL;
return root;
}//创建二叉树;
void viewnode(treenode *root)
{
cout<<root->data<<" ";
if(root->lchild) viewnode(root->lchild);
if(root->rchild) viewnode(root->rchild);
}//前序遍历二叉树;
int main()
{
treenode * root;
root=treecreate(root);
viewnode(root);
return 0;
}
[em10]
# include<iostream>
using namespace std;
struct treenode{
int data;
treenode * lchild,*rchild;
};
treenode * treecreate(treenode *root)
{
root=new treenode;
bool l,r;
cout<<"请输入节点值:";
cin>>root->data;
cout<<"该节点有没有左节点?(如果有输入1,如果没有,输入0)";
cin>>l;
if(l) treecreate(root->lchild);
else root->lchild=NULL;
cout<<"该节点有没有右节点?(如果有,输入1,如果没有,输入0)";
cin>>r;
if(r) treecreate(root->rchild);
else root->rchild=NULL;
return root;
}//创建二叉树;
void viewnode(treenode *root)
{
cout<<root->data<<" ";
if(root->lchild) viewnode(root->lchild);
if(root->rchild) viewnode(root->rchild);
}//前序遍历二叉树;
int main()
{
treenode * root;
root=treecreate(root);
viewnode(root);
return 0;
}
[em10]