




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告实验名称: 实验三二叉树学生姓名:班 级:班内序号: 学 号: 日 期: 2012年1实验要求根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树。 其中二叉树的基本功能:1、二叉树的建立2、前序遍历二叉树3、中序遍历二叉树4、后序遍历二叉树5、按层序遍历二叉树6、求二叉树的深度7、求指定结点到根的路径8、二叉树的销毁2. 程序分析2.1 存储结构二叉树: 以数字的大小标示数据在数组中的顺序 1 3 2 6 5 4 2.2 关键算法分析2.2.1查找从指定节点到根的路径:关键算法: 利用函数的递归调用进行遍历,利用返回值判断所指节点是否在所正确路径上。代码详细分析: 1.传入参数:节点的指针,目标节点的数据; 2.判断传入指针是否为空,是则返回0; 3.判断传入节点的数据是否等于目标数据,是则返回1; 4.若3中判断为否,则令m等于将节点指针的左子指针作为参数传递递归调用此函数的返回值;则令n等于将节点指针的右子指针作为参数传递递归调用此函数的返回值;若m+n等于0则返回0,否则输出该节点的数值并返回1; 5.在主函数中判断此递归函数的返回值,若为0,则输出“该节点不存在”。 设指定节点为6,其中蓝色箭头代表输出,橙色箭头旁的数代表返回值算法的时间复杂度为o(n)、空间复杂度为2。2.2.2创建二叉树 代码详细分析:若数组下标i小于数组大小,则:若数组内该位置的值不为0,则创建根节点并将数组内该位置的值赋值给根节点;递归创建左子树(2i),递归创建右子树(2i+1)。否则将根节点指针赋值为0。 否则将根节点指针赋值为0。 算法的时间复杂度为o(n)、空间复杂度为0。2.2.3前序遍历 代码详细分析:1. 访问根节点;2. 前序遍历访问根节点的左子树;3. 前序遍历访问根节点的右子树。 (其中,中序遍历与前序遍历的不同仅在于:访问根节点为第二步。后序遍历与前序遍历的不同仅在于:访问根节点为第三步。) 算法的时间复杂度为o(n)、空间复杂度为0。 2.2.4层序遍历 代码详细分析:1. 初始化空队列;2. 若根节点非空则入队;3. 如果队列不为空(队头=队尾),则:3.1. 队头元素出队并打印;3.2. 若该节点的左孩子非空,则左孩子入队;3.3. 若该节点的右孩子非空,则右孩子入队; 6 6 6 5 5 4 4 3 3 2 1 1 2 3 4 5 6算法的时间复杂度为o(n)、空间复杂度为n。 2.2.5计算二叉树的深度 代码详细分析:1. 若根节为空,则返回0;2. 若根节点非空,则:2.1. 令m等于此函数遍历该节点左子树的返回值;2.2. 令n等于此函数遍历该节点右子树的返回值;2.3. 返回m和n大的那个。3. 程序运行结果3.1测试主函数流程: 开始赋值测试条件i=0?i=查找从指定节点到根的路径二叉树的层序遍历二叉树的后序遍历二叉树的中序遍历二叉树的前序遍历构造二叉树是输出该节点不存在j=求二叉树的深度j=0?是结束输出该二叉树为无3.2测试条件:test14=1,2,3,4,5,6,7,0,8,9,10,11,0,0;3.3测试结论4. 总结4.1调试时出现的问题及解决的方法 问题1: create函数在递归调用过程中会发生数组的访问越界,致使二叉树被额外赋值。 解决方法:1.增加一参数j传递数组的大小,在给二叉树赋值前先进行判断,当数组的下标小于j时才给二叉树赋值。2.在给数组赋值时多给每个叶子节点的左右子节点赋值为0。问题2: 当测试参数为字符时无法对标记为“0”的节点进行正确操作。解决方法: 将create函数中的一个判断条件:datai-1!=0, 改为:datai-1!=0。4.2心得体会经过本次试验我对二叉树有了更深一步的了解,熟练地掌握了二叉树的构造、四种遍历方法以及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高清摄影机水下拍摄行业深度调研及发展项目商业计划书
- 耐磨耐用运动场专用草坪行业深度调研及发展项目商业计划书
- 耐磨塑料牵引绳索制造企业制定与实施新质生产力项目商业计划书
- 儿童营养乳品行业跨境出海项目商业计划书
- 灯具仓储配送行业深度调研及发展项目商业计划书
- 护理个案现场分析
- 湖北省十堰市第六中学2025届七下数学期末经典试题含解析
- 高产角蛋白酶菌株筛选、条件优化、酶学性质及降解产物应用的研究
- 莆田三中2024-2025学年下学期期中(解析版)
- 种植牙护理常规
- 医院停水停电应急预案培训
- 变频器在家用电器中的应用
- 景区保洁服务方案
- 肺动脉栓塞护理查房
- 临床诊治工作中的伦理道德
- 人人乐超市消防监控系统设计
- 新生儿转运暖箱
- 化疗病人健康宣教课件
- 国家讲解员培训课件
- 招商引资培训课题
- 死因监测工作规范
评论
0/150
提交评论