二叉树的遍历运算
#include<iostream>
using namespace std;
typedef struct BiNode{
char data;
struct BiNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T){
char ch;
cin >> ch;
if(ch=='.') T=NULL;
else{
T=new BiTNode;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void InOrderTraverse(BiTree T){
if(T){
InOrderTraverse(T->lchild);
cout << T->data;
InOrderTraverse(T->rchild);
}
}
void InOrderTraverse1(BiTree T){
if(T){
cout << T->data;
InOrderTraverse1(T->lchild);
InOrderTraverse1(T->rchild);
}
}
void InOrderTraverse2(BiTree T){
if(T){
InOrderTraverse2(T->lchild);
InOrderTraverse2(T->rchild);
cout << T->data;
}
}
int main(){
BiTree tree;
cout<<"请输入建立二叉链表的序列:\n";
CreateBiTree(tree);
cout<<"中序遍历的结果为:\n";
InOrderTraverse(tree);
cout<<endl;
cout<<"前序遍历的结果为:\n";
InOrderTraverse1(tree);
cout<<endl;
cout<<"后序遍历的结果为:\n";
InOrderTraverse2(tree);
cout<<endl;
}