源码:
#include<iostream>
using namespace std;typedef char Datatype;
struct TNode
{
Datatype data;
TNode* rchild;
TNode* lchild;
};
void CreatTree(TNode* &root)
{
char ndata;
cin>>ndata;
if(ndata=='#') root=NULL;
else
{
root=new TNode;root->data=ndata;
CreatTree(root->lchild);
CreatTree(root->rchild);
}
}
void preOrderTraver(TNode*& root)
{
if(root!=NULL)
{
cout<<root->data<<" ";
preOrderTraver(root->lchild);
preOrderTraver(root->rchild);
}
}
void InOrderTraver(TNode*& root)
{
if(root!=NULL)
{
InOrderTraver(root->lchild);
cout<<root->data<<" ";
InOrderTraver(root->rchild);
}
}
void posOrderTraver(TNode*& root)
{
if(root!=NULL)
{
posOrderTraver(root->lchild);
posOrderTraver(root->rchild);
cout<<root->data<<" ";
}
}
int main()
{
TNode *root=NULL;
CreatTree(root);
cout<<"前序遍历:"<<endl;
preOrderTraver(root);cout<<endl;
cout<<"中序遍历:"<<endl;
InOrderTraver(root);cout<<endl;
cout<<"后序遍历:"<<endl;
posOrderTraver(root);cout<<endl;
return 0;
}