1 / 12
文档名称:

数据结构与算法分析实验报告.docx

格式:docx   大小:20KB   页数:12
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构与算法分析实验报告.docx

上传人:feng1964101 2019/2/21 文件大小:20 KB

下载得到文件列表

数据结构与算法分析实验报告.docx

文档介绍

文档介绍:数据结构与算法分析实验报告沈阳工程学院学生实验报告实验题目: 班级网络本112学号27姓名郑乐乐地点F606指导教师吕海华祝世东实验日期:XX年11月13日 1 2 3 4 华南农业大学信息学院综合性、设计性实验起止日期:XX秋教师签名:杨秋妹实验报告题目:实现平衡二叉排序树的各种算法班级:10软件工程7班姓名:黄定康学号:XX完成日期:XX/12/07 分析题目要求函数说明 voidR_rotate(ptr&t)-右旋转函数,从T开始做右旋转intcoutdeep(ptrt)-计算深度函数 voidL_rotate(ptr&t)-左旋转函数 voidleftbalance(ptr&t)-左平衡函数,从T开始做左平衡处理voidrightbalance(ptr&t)-右平衡函数 intinsertAVL(ptr&t,inte,int&taller)-插入结点函数voidpreorder(ptrt)-先序遍历 voidpreorder_2(ptrt)-先序遍历voidinorder(ptrt)-中序遍历voidinorder_2(ptrt)-中序遍历voidposorder(ptrt)-后序遍历 voidposorder_2(ptrt)-后序遍历 voiddfs(ptrt,inttype)-深度优先遍历voiddfs_2(ptrt,inttype)-(递归)深度优先遍历intbfs(ptrt)-层次便利 intdelete_node(ptr&t,int&shorter,inttemp);-删除结点函数intDelete(ptr&t,intshorter)-删除结点函数 inttransfer(ptr&t)-左右子树交换函数intcountleaf(ptrt)-计算叶节点 intcheckup(ptrt,inttemp)-从树t中查找temp是否存在,存在返回1否则返回0intmain()-主函数 voidshow_menu(ptrt)-简单的菜单函数输入形式及输入值范围输入形式:当树没创建时,先在第一行输入树的节点数目n,第二行再输入n个大于0的不重复整数,以空格隔开。删除结点时,直接输入要删除结点的值。输入范围:所有int类型的大于零的值,注意不能重复输入。输出形式输出形式:各种遍历形式输出均用空格隔开,删除结点时,若成功,打印成功信息,若失败,则打印失败的信息。程序所能达到的功能程序里面的函数可以实现平衡二叉树的以下功能: 插入新结点前序、中序、后序遍历二叉树前序、中序、后序遍历的非递归算法层次遍历二叉树在二叉树中查找给定关键字交换各结点的左右子树求二叉树的深度叶子结点数删除某结点解题思路插入的思路:插入基于一般二叉排序树的插入,但在插入的同时考虑是否破坏平衡。在结构体中假如balancefunction,来记录当前结点的平衡情况。删除的思路:在删除结点的时候,删除之前先考虑删除之后是否影响该子树的平衡结构,再回溯考虑是否影响整棵AVL树的平衡。调整后再删除。遍历的思路:非递归的遍历都用了栈作为辅助的结构,在树的结点中加入状态来记录当前结点的访问状态。然后再做对应操作。统计深度和叶节点数量的思路:都是用了递归的思想,统计深度是递归求左右子树的深度,取较大值。统计叶节点则是递归求左右子树的叶节点,最后求和。调试分析困难和解决:由于在课本上没有删除的相关算法,一开始要考虑删除后的平衡问题确实比较困难,不过通过上网查找相关资料。最终还是得以解决。同样,非递归遍历的算法也如此,一开始感觉无从下手,不过结合了堆栈的知识之后,就迎刃而解了。使用的测试数据: 第一组:输入顺序是54321,树的三种遍历是42135,12345,。删除结点5后是2143,1234,。第二组:输入顺序是,树的三种遍历是,,.删除结点7后是,,。第三组:,,.删除60后是,,. 算法的效率分析和改进设想:删除和插入的算法均是用了二叉排序树的性质来进行,故算法的效率大概为O(lgn)。而遍历的非递归算法均是以栈结构实现。故应该以O(n)的效率进行。由于算法设计的不完善,删除和插入函数的旋转操作都可以进一步提升效率,判断情况也可以尽量减少冗余。这样可以让时间复杂度前面的系数变小,从而提高算法整体效率。经验和体会: 这次的实验让我充分认识了AVL树的各种操作,及其优越的查找删除效率。但由于一开始对删除操作的不熟悉,走了不少弯路,在上网查找了资料之后阔然开朗。并实现了算法。这次实验的最大体会是,要从小的例子开始,多动手来实际演算算法进行过程,从而发现错误所在。附录--带注释的源程序#include#include#defineLH1 #defineEH0#defineRH-1 #defineWH//printf("

最近更新

2026年主管中药师考试备考题100道含答案(巩固.. 38页

2026年医学微生物学习题集及答案(考点梳理).. 41页

2026年宪法知识竞赛试题库100道及参考答案【完.. 41页

2026年宪法知识竞赛试题库100道附答案【突破训.. 40页

2026年网络安全知识竞赛题库完整答案 39页

小学历史与文化知识竞赛题库100道及答案【名校.. 37页

新安全生产法知识竞赛试题库【有一套】 43页

最新煤气操作证考试题100道及参考答案【研优卷.. 39页

最新煤气操作证考试题100道附答案(培优a卷).. 39页

最新煤气操作证考试题100道(能力提升) 38页

2025年元件测试仪合作协议书 69页

2025年其他零售服务项目发展计划 64页

2025年办公商业空间设计项目建议书 63页

2025年重庆市眉山地区单招职业倾向性测试模拟.. 44页

2025年阳江市妇幼保健院急需人才招聘参考题库.. 43页

2025新疆吐鲁番市高昌区面向社会招聘第二批警.. 49页

2025浙江省丽水机场管理有限公司招聘考试题库.. 43页

2025贵州民航低空经济发展有限公司旗下企业招.. 46页

2026年c语言循环程序设计题目及答案(全国通用.. 13页

2026年c语言设计考试题库有答案 13页

2026年主管中药师考试备考题100道附参考答案【.. 37页

2026年党风廉政建设知识竞赛题库1套 15页

2026年北海康养职业学院单招职业倾向性考试模.. 45页

2026年司法考试题库100道含完整答案【典优】 48页

2026年国企廉政考试题库1套 14页

2026年大学c语言考试题库word 13页

2026年甘肃有色冶金职业技术学院单招职业倾向.. 42页

2026福建省面向北京科技大学选调生选拔工作考.. 48页

2025交通运输部所属事业单位第七批统一招聘10.. 18页

2026年江西交通职业技术学院单招职业倾向性考.. 37页