C语言递归实现二叉树的建立.doc

C语言递归实现二叉树的建立.doc

ID:49463971

大小:32.50 KB

页数:7页

时间:2020-03-01

C语言递归实现二叉树的建立.doc_第1页
C语言递归实现二叉树的建立.doc_第2页
C语言递归实现二叉树的建立.doc_第3页
C语言递归实现二叉树的建立.doc_第4页
C语言递归实现二叉树的建立.doc_第5页
资源描述:

《C语言递归实现二叉树的建立.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言递归实现二叉树的建立,先序,中序,后序遍历操作及结点数和树的高度计算#include#defineElemTypechar//节点声明,数据域、左孩子指针、右孩子指针typedefstructBiTNode{chardata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;//先序建立二叉树BiTreeCreateBiTree(){charch;BiTreeT;scanf("%c",&ch);if(ch=='#')T=NULL;else{T=(BiTree)malloc(si

2、zeof(BiTNode));精选范本,供参考!T->data=ch;T->lchild=CreateBiTree();T->rchild=CreateBiTree();}returnT;//返回根节点}//先序遍历二叉树voidPreOrderTraverse(BiTreeT){if(T){printf("%c",T->data);PreOrderTraverse(T->lchild);精选范本,供参考!PreOrderTraverse(T->rchild);}}//中序遍历voidInOrderTraverse(BiTreeT){if(T

3、){InOrderTraverse(T->lchild);printf("%c",T->data);InOrderTraverse(T->rchild);}精选范本,供参考!}//后序遍历voidPostOrderTraverse(BiTreeT){if(T){PostOrderTraverse(T->lchild);PostOrderTraverse(T->rchild);printf("%c",T->data);}}//求树的结点数intnumofnode(BiTreeT){if(NULL==T)return0;elsereturn(nu

4、mofnode(T->lchild)+精选范本,供参考!numofnode(T->rchild)+1);}//求树的深度intdepth(BiTreeT){inth,lh,rh;if(NULL==T)h=0;else{lh=depth(T->lchild);rh=depth(T->rchild);if(lh>=rh)h=lh+1;elseh=rh+1;}returnh;}//求叶子结点数intleafNum(BiTreeT){精选范本,供参考!intLleaf,Rleaf;if(T==NULL)return0;elseif(T->lchild

5、==NULL&&T->rchild==NULL)return1;else{Lleaf=leafNum(T->lchild);Rleaf=leafNum(T->rchild);return(Lleaf+Rleaf);}}voidmain(){BiTreeT;T=CreateBiTree();//建立printf("先序遍历:");PreOrderTraverse(T);//输出printf("");printf("中序遍历:");InOrderTraverse(T);//输出printf("");printf("后序遍历:"

6、);PostOrderTraverse(T);//输出精选范本,供参考!printf("");printf("该树结点数为:%d",numofnode(T));printf("树的深度为:%d",depth(T));printf("该树叶子结点数为:%d",leafNum(T));}演示图例:#代表孩子为空【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】精选范本,供参考!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。