##结构体定义及函数声明
1 typedef char ElemType; 2 typedef struct BiTNode 3 { 4 ElemType data; 5 struct BiTNode *lchild,*rchild; 6 }BiTNode,*BiTree; 7 8 BiTree CreateBiTree(); 9 void PreOrder (BiTree &T); 10 void InOrder(BiTree &T); 11 void PostOrder(BiTree &T);
##主函数
1 int main() { 2 BiTree T = CreateBiTree(); 3 cout<<"先序遍历结果:" ; 4 PreOrder(T); 5 cout<<endl; 6 cout<<"中序遍历结果:" ; 7 InOrder(T); 8 cout<<endl; 9 cout<<"后序遍历结果:" ; 10 PostOrder(T); 11 cout<<endl; 12 return 0; 13 }
##创建树函数
1 BiTree CreateBiTree() 2 { 3 BiTree T; 4 char ch; 5 cin>>ch; 6 if(ch=='#') T = NULL; 7 else 8 { 9 T = new BiTNode; 10 T->data = ch; //生成根节点 11 T->lchild = CreateBiTree(); //构造左子树 12 T->rchild = CreateBiTree(); //构造右子树 13 } 14 return T; 15 }// CreateBiTree
##先序遍历函数
1 void PreOrder (BiTree &T) 2 { 3 if(T!=NULL) 4 { 5 cout<<T->data<<" "; 6 PreOrder(T->lchild); 7 PreOrder(T->rchild); 8 } 9 }
##中序遍历函数
1 void InOrder(BiTree &T) 2 { 3 if(T!=NULL) 4 { 5 PreOrder(T->lchild); 6 cout<<T->data<<" "; 7 PreOrder(T->rchild); 8 } 9 }
##后序遍历函数
1 void PostOrder(BiTree &T) 2 { 3 if(T!=NULL) 4 { 5 PreOrder(T->lchild); 6 PreOrder(T->rchild); 7 cout<<T->data<<" "; 8 } 9 }
##二叉树举例
##代码运行结果
扫描二维码关注公众号,回复:
6039043 查看本文章