欢迎来到天天文库
浏览记录
ID:38064605
大小:28.50 KB
页数:3页
时间:2019-05-25
《二叉树的递归遍历》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#defineOVERFLOW-1typedefstructBiTNode{intdata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;voidvisit(charch){printf("%5c",ch);}voidCreateBiTree(BiTree&T){charch;scanf("%c",&ch);if(ch=='')T=NULL;else{T=(BiTree)malloc(sizeof(BiTNode));if(!T)exit(OV
2、ERFLOW);T->data=ch;CreateBiTree(T->lchild);CreateBiTree(T->rchild);}}voidPreOrderTraverse(BiTreeT,void(*Visit)(char)){if(T){Visit(T->data);PreOrderTraverse(T->lchild,Visit);PreOrderTraverse(T->rchild,Visit);}}voidInOrderTraverse(BiTreeT,void(*Visit)(char)){if(T){InOrderTraverse(T->
3、lchild,Visit);Visit(T->data);InOrderTraverse(T->rchild,Visit);}}voidPostOrderTraverse(BiTreeT,void(*Visit)(char)){if(T){PostOrderTraverse(T->lchild,Visit);PostOrderTraverse(T->rchild,Visit);Visit(T->data);}}intsum(BiTreeT){intm,n;if(!T)return0;else/*{m=sum(T->lchild);n=sum(T->rchil
4、d);returnm+n+1;}*/returnsum(T->lchild)+sum(T->rchild)+1;}intDepth(BiTreeT){intm,n;if(!T)return0;else{m=Depth(T->lchild);n=Depth(T->rchild);return(m>=n?m:n)+1;}}voidmain(){BiTreeT;inta,b;printf("按先序次序输入二叉树的结点:");CreateBiTree(T);printf("");printf("先序递归遍历二叉树:");PreOrderTraverse(
5、T,visit);printf("");printf("中序递归遍历二叉树:");InOrderTraverse(T,visit);printf("");printf("后序递归遍历二叉树:");PostOrderTraverse(T,visit);printf("");printf("求二叉树所有节点的个数:");a=sum(T);printf("%d",a);printf("");printf("求二叉树的深度:");b=Depth(T);printf("%d",b);printf("");}
此文档下载收益归作者所有