using namespace std;
class Bintree
{
public:
Bintree(){data='0';lchild=NULL;rchild=NULL;}
char data;
Bintree *lchild;
Bintree *rchild;
};
void CreateBintree(Bintree* tree)
{
char ch;
cin>>ch;
if(ch=='0')
tree=NULL;
else
{
tree=new Bintree;
tree->data = ch;
CreateBintree(tree->lchild);
CreateBintree(tree->rchild);
}
}
void PreOrderTraverse(Bintree *t)
{
if(t!=NULL)
{
cout<< t->data;
PreOrderTraverse(t->lchild);
PreOrderTraverse(t->rchild);
}
}
int main()
{
Bintree *t=NULL;
CreateBintree(t);
PreOrderTraverse(t);
return 0;
}
自己改了一下,呵呵,现在可以了,还是请高手帮我分析一下上面的为什么不行?
#include
using namespace std;
class Bintree
{
public:
Bintree(){data='0';lchild=NULL;rchild=NULL;}
char data;
Bintree *lchild;
Bintree *rchild;
};
Bintree* CreateBintree(Bintree* tree)
{
char ch;
cin>>ch;
if(ch=='0')
tree=NULL;
else
{
tree=new Bintree;
tree->data = ch;
tree->lchild = CreateBintree(tree->lchild);
tree->rchild = CreateBintree(tree->rchild);
}
return tree;
}
void PreOrderTraverse(Bintree *t)
{
if(t)
{
cout<< t->data;
PreOrderTraverse(t->lchild);
PreOrderTraverse(t->rchild);
}
}
int main()
{
Bintree *Tree=NULL;
Tree = CreateBintree(Tree);
PreOrderTraverse(Tree);
return 0;
}