数据结构二叉树c语言实现

数据结构二叉树c语言实现

ID:9363740

大小:171.50 KB

页数:8页

时间:2018-04-29

数据结构二叉树c语言实现_第1页
数据结构二叉树c语言实现_第2页
数据结构二叉树c语言实现_第3页
数据结构二叉树c语言实现_第4页
数据结构二叉树c语言实现_第5页
资源描述:

《数据结构二叉树c语言实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数学与信息技术学院2016~2017(下)学年计科专业2015级《数据结构》实验报告5学号:2015201018姓名:汪继超实验名称树的操作实现与应用完成时间2017.05.10一.实验目的和要求:1.掌握树特别是二叉树的基本概念、定义和性质。2.掌握二叉树的基本结构、内部逻辑和三种遍历算法的基本思想,熟悉二叉树的存储结构和指针链接的变化。3.通过对二叉树的建立和三种遍历算法的实现,学会编程的方法。二.实验原理树是一种应用极为广泛的数据结构,也是本门课程的重点,它的特点在于非线性。遍历操作是树众多操作的基础,所以本次实验主要强调突出二叉树的三种基本遍历操作的实现。三.实验内容(1

2、)根据屏幕提示输入二叉树的各个结点,并建立该二叉树;(2)选择某种遍历方式输出该二叉树;(3)求该二叉树的叶子结点数;(4)求该二叉树的高度;(5)将该二叉树中所有结点的左、右子树相互换,并输出。实验过程:/*注:此程序为二叉树树的操作实现与应用*/#include#include#include#includetypedefintTElemType;typedefstructBiTNode{TElemTypedata;structBiTNode*lchild,*rchild;}BiTNode,*Bi

3、Tree;BiTNode*CreatBiTree(){BiTreeT;intch;scanf("%d",&ch);if(ch==0)T=NULL;else{T=(BiTNode*)malloc(sizeof(BiTNode));if(!T)exit(0);T->data=ch;printf("请输入%d的左结点:",ch);T->lchild=CreatBiTree();printf("请输入%d的右结点:",ch);T->rchild=CreatBiTree();}returnT;}voidPreOrderTraverse(BiTNode*P){if(P!=NULL){prin

4、tf("%-2d",P->data);PreOrderTraverse(P->lchild);PreOrderTraverse(P->rchild);}elseprintf("—");}voidInOrderTraverse(BiTNode*P){if(P!=NULL){InOrderTraverse(P->lchild);printf("%-2d",P->data);InOrderTraverse(P->rchild);}elseprintf("—");}voidPostOrderTraverse(BiTNode*P){if(P!=NULL){PostOrderTraverse

5、(P->lchild);PostOrderTraverse(P->rchild);printf("%-2d",P->data);}elseprintf("—");}voidexchange(BiTNode*P){BiTNode*q;if(P){q=P->lchild;P->lchild=P->rchild;P->rchild=q;exchange(P->lchild);exchange(P->rchild);}}intcount_leaves(BiTNode*P){if(!P)return0;elseif(!P->lchild&&!P->rchild)return1;elsere

6、turncount_leaves(P->lchild)+count_leaves(P->rchild);}intTreeHigh(BiTNode*T){intlh=0,rh=0;if(!T)return0;lh=TreeHigh(T->lchild);rh=TreeHigh(T->rchild);returnlh>rh?lh+1:rh+1;}voidMenu(){printf("欢迎使用树的操作实现与应用系统");printf("************************************菜单**********************************

7、****");printf("*1.创建树2.先序遍历二叉树*");printf("*3.中序遍历二叉树4.后序遍历二叉树*");printf("*5.左右子树交换6.求叶子数*");printf("*7.求树的深度0.退出*");printf("******************************************************************************");}voidmain(){intn,f,high,c

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

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

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