从别处找来几个例子,感觉还可以,同学们拿回去看看吧,有什么地方不懂可以下可以后来实验室问我。
[cpp]
view plain
copy
print
?
#include <iostream> using namespace std;
struct BiTNode{
char data;
struct BiTNode *lchild, *rchild; }; BiTNode*T;
void CreateBiTree(BiTNode* &T);
void Inorder(BiTNode* &T);
void PreOrderTraverse(BiTNode* &T);
void Posorder(BiTNode* &T);
int main(){ cout<<
"创建一颗树,其中A->Z字符代表树的数据,用“#”表示空树:"<<endl; CreateBiTree(T); cout<<
"先序递归遍历:"<<endl; PreOrderTraverse(T); cout<<endl; cout<<
"中序递归遍历:"<<endl; Inorder(T); cout<<endl; cout<<
"后序递归遍历:"<<endl; Posorder(T); cout<<endl;
return 1;}
void CreateBiTree(BiTNode* &T){
char ch;
if((ch=getchar())==
'#')T=NULL;
else{ T=
new BiTNode; T->data=ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } }
void PreOrderTraverse(BiTNode* &T){
if(T){ cout<<T->data; PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); }
else cout<<
""; }
void Inorder(BiTNode* &T){
if(T){ Inorder(T->lchild); cout<<T->data; Inorder(T->rchild); }
else cout<<
""; }
void Posorder(BiTNode* &T){
if(T){ Posorder(T->lchild); Posorder(T->rchild); cout<<T->data; }
else cout<<
""; }