主题:二叉树的递归建立与输出 不知道哪个地方错了
#include <iostream>
using namespace std;
class BiTreeNode
{
public:
char ch;
int frequency;
BiTreeNode * Lchild,* Rchild;
void Visit(BiTreeNode * T);
public:
void CreateBiTree(BiTreeNode * T);
void PreOrderTraverse(BiTreeNode * T);
};
BiTreeNode * BiTreeHead=0;
int control=1;
void BiTreeNode::Visit(BiTreeNode * T)
{
cout<<T->ch;
}
void BiTreeNode::CreateBiTree(BiTreeNode * T)
{
char ch;
if((ch=getchar())==' ')//为什么不能直接读字符?
T=0;
else
{
T=new BiTreeNode;
if(control==1)
BiTreeHead=T;
control++;
T->ch=ch;
CreateBiTree(T->Lchild);
CreateBiTree(T->Rchild);
}
}
void BiTreeNode::PreOrderTraverse(BiTreeNode * T)
{
if(T)
{
Visit(T);
PreOrderTraverse(T->Lchild);
PreOrderTraverse(T->Rchild);
}
}
int main()
{
cout<<"输入26个英文字母\n";
BiTreeNode * T=0;
T->CreateBiTree(T);
T->PreOrderTraverse(BiTreeHead);
return 0;
}
using namespace std;
class BiTreeNode
{
public:
char ch;
int frequency;
BiTreeNode * Lchild,* Rchild;
void Visit(BiTreeNode * T);
public:
void CreateBiTree(BiTreeNode * T);
void PreOrderTraverse(BiTreeNode * T);
};
BiTreeNode * BiTreeHead=0;
int control=1;
void BiTreeNode::Visit(BiTreeNode * T)
{
cout<<T->ch;
}
void BiTreeNode::CreateBiTree(BiTreeNode * T)
{
char ch;
if((ch=getchar())==' ')//为什么不能直接读字符?
T=0;
else
{
T=new BiTreeNode;
if(control==1)
BiTreeHead=T;
control++;
T->ch=ch;
CreateBiTree(T->Lchild);
CreateBiTree(T->Rchild);
}
}
void BiTreeNode::PreOrderTraverse(BiTreeNode * T)
{
if(T)
{
Visit(T);
PreOrderTraverse(T->Lchild);
PreOrderTraverse(T->Rchild);
}
}
int main()
{
cout<<"输入26个英文字母\n";
BiTreeNode * T=0;
T->CreateBiTree(T);
T->PreOrderTraverse(BiTreeHead);
return 0;
}