二叉树叶子结点数和高度

上传人:F****n 文档编号:98256162 上传时间:2019-09-09 格式:DOC 页数:8 大小:84.50KB
返回 下载 相关 举报
二叉树叶子结点数和高度_第1页
第1页 / 共8页
二叉树叶子结点数和高度_第2页
第2页 / 共8页
二叉树叶子结点数和高度_第3页
第3页 / 共8页
二叉树叶子结点数和高度_第4页
第4页 / 共8页
二叉树叶子结点数和高度_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《二叉树叶子结点数和高度》由会员分享,可在线阅读,更多相关《二叉树叶子结点数和高度(8页珍藏版)》请在金锄头文库上搜索。

1、江西理工大学软件学院计算机类课程实验报告课程名称: 数据结构 班 级: 姓 名: 学 号: 江西理工大学软件学院差距大,市场体系不完善,缺乏集聚效应等问题,同时充分考虑到该地周围已形成成熟建材商圈的商业价值,因地制宜的进行家居建材广场的建设。通过合理布局、优化环境、提升服务,该项目必将切实发挥商业区在引导消费、拉动经济增长方面的作用,促进该县经济和社会又好又快发展。7实 验 五 实验名称求二叉树叶子结点数和高度实验日期2012-12-11实验成绩实验目的、要求及内容一、 实验目的、要求:a) 加深理解二叉树的定义和特性;b) 掌握二叉树的存储结构与实现;c) 掌握二叉树的遍历操作及其应用二、实

2、验内容:1 写出程序的运行结果,并上机验证2 上机调试程序,根据键盘输入的扩展二叉树的前序遍历序列建立相应的二叉树,并计算该二叉树的叶子结点个数和高度。3 上机调试,程序分析4 编写程序5 填写实验报告实验环境3423机房操作系统:windows XPC环境: VC+ 6.0算法描述及实验步骤一、算法描述存储结构:二叉链表基本思想:利用二叉树的遍历操作,设计递归算法实现。递归模式:一整棵二叉树树的叶子结点数 左子树的叶子结点数 右子树的叶子结点数递归出口二、实验步骤1 写出程序的运行结果,并上机验证。程序及运行结果如下:(1)输入创建一棵二叉树的结点数据:ab#c#D# 输出:前序遍历 abc

3、D该二叉树的叶子结点为:2 该二叉树的高度为:3交换后的二叉树为:abDc(2) 输入创建一棵二叉树的结点数据:ABC#D#E# 输出:前序遍历 ABCDE该二叉树的叶子结点为:2 该二叉树的高度为:4交换后的二叉树为:AEBCD2 上机调试程序,按规定格式输入数据(1)输入创建一棵二叉树的结点数据:ab#c#D#运行结果,正确。(2) 输入创建一棵二叉树的结点数据:ABC#D#E# 运行结果,正确。(3) 若输入格式错误,则无法得到结果。3 上机调试,程序分析4 编写程序调试过程及实验结果实验执行的结果:(1) 输入创建一棵二叉树的结点数据:ab#c#D#(2) 输入创建一棵二叉树的结点数据

4、:ABC#D#E#总 结课程实验不仅要求对课本知识有较深刻的了解,同时要求我们有较强的思维和动手能力,需要进一步了解编程思想和编程技巧。通过课程实验,使我对课本知识掌握的更加深刻,增强了自己的思维和动手能力。通过这次试验加深理解二叉树的定义和特性;掌握二叉树的存储结构与实现;掌握二叉树的遍历操作及其应用附 录(源程序清单等)#includeint count=0;struct BiNodechar data;BiNode *lchild,*rchild;class BiTreepublic: BiTree(); BiTree(); void CountLeaf(BiNode *root); i

5、nt BiTreeDepth(BiNode *root); BiNode *getroot()return root; void Swap(BiNode *root); / int IsSame(BiNode *root1,BiNode *root2);private: BiNode *root; BiNode *Creat(); void Release(BiNode *root); ;BiTree:BiTree() root=Creat(); BiNode *BiTree:Creat() BiNode *root; char ch;cinch;if(ch=#) return NULL;el

6、se root=new BiNode;root-data=ch; root-lchild=Creat(); root-rchild=Creat();return root;BiTree:BiTree ()Release(root);void BiTree:Release (BiNode *root)if(root!=NULL)Release(root-lchild );Release(root-rchild );delete root;void BiTree:CountLeaf(BiNode *root)if(root!=NULL) if(root-lchild=NULL&root-rchil

7、d=NULL) count+; coutdatalchild); CountLeaf(root-rchild);int BiTree:BiTreeDepth(BiNode *root)if(root=NULL)return 0;elseint dep1=BiTreeDepth(root-lchild); int dep2=BiTreeDepth(root-rchild);if(dep1dep2)return dep1+1;else return dep2+1; void BiTree:Swap(BiNode *root)if(root!=NULL) BiNode *p; p=root-lchi

8、ld; root-lchild=root-rchild; root-rchild=p;coutdatalchild ); Swap(root-rchild );void main() cout 请依次输入创建一棵二叉树的结点数据: endl; BiTree B;cout-前序遍历-endl; B.CountLeaf(B.getroot();coutendl;cout该二叉树的叶子结点数为:;coutcountendl;cout该二叉树的高度为:; coutB.BiTreeDepth (B.getroot()endl; cout交换后的二叉树为:endl;B.Swap(B.getroot();coutendl;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号