- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2014—2015学年度第 二 学期
数据结构课程设计实验报告
学院 应用数学学院
专业班级
学号
姓名
手机
指导教师 刘志煌
2014年 12月5日
标题与设计内容
编程实现二叉排序树,包括生成,插入,删除。
编写一个函数,判断自己生成的二叉树是否为二叉排序树。
对二叉排序树进行先根,中根和后根非递归遍历。
每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。
分别用二叉排序树和数组去存储一个班(50 人以上)的成员信息(至少包括学号、姓名、成绩 3 项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么?
对数据测试,分析,总结和改进
实现算法与关键代码
主要结构:包括头文件,结构体数组,实现二叉排序树的各种方法,二叉树与数组查找效率对比方法,以及主方法。
Declarations :C的头文件以及自定义类型
二叉排序树的生成:数组的数据读入二叉树中
二叉排序树的插入
二叉排序树的删除
判断是否为二叉排序树
非递归先序遍历
非递归中序遍历
非递归后序遍历
二叉排序树与数组查找效率的比较
主函数
数据测试与分析
开始界面
二叉排序树的生成
判断是否为一颗二叉排序树
插入一个新的节点
删除操作
非递归前序遍历
非递归中序遍历
非递归后序遍历
二叉排序树与数组查找速率的比较
总结(自己做了哪方面的内容,有何亮点)
二叉排序树的生成,插入,删除。
这是最基础的一部分,在做这部份的时候没有考虑后面的数组数据的读入,直接由用户写入要创建的数据,在做到后面进行程序的调试的时候由于要用到50个元素信息,如果每次都通过用户端打入是很不方便的,于是将代码段整体加入结构体数组,用于存放50个元素信息。同时二叉排序树的的节点值直接从结构体数组中写入。
非递归遍历操作
三种非递归遍历操作:前序,中序,后续。在编写三种遍历的时候,先写了一下递归遍历操作,然后用指针进行非递归的便利操作。
树形输出
二叉排序树的的树形输出,根据左右子树遍历操作得出了树形输出。这里用的树形输出是将列进行排,出来的图不是很好看,然后我试着将树横向输出,然后发现遍历时是从树的最底层数据开始,问题在于运行窗口只能从上往下,最后还是没有得出能横向的算法,只有纵向的树形输出。
二叉排序树与数组查找效率的比较
通过调用了clock();方法,在两种查找方式开始之前分别获取一个时间start,在查找之后获取一个时间end,将两个求差,用时最短的说明时间最短,同时也就是效率最高。
自评(根据自己的情况给自己一个等级/分数,说明理由,包含自己实现了哪一块,哪一块还没有解决。一定要写,不然就会不及格)
自评分:
理由
实现代码块:二叉排序树的生成,插入,删除,树形输出,判断是否为二叉排序树,二叉排序树与数组查询效率的比较都已经实现。
还需改进的地方:
二叉排序数生成的时候由于要求用50个数据,所以要我将开始的由用户端输出直接改成用结构体数组存储50个信息元素,二叉排序树直接从结构体数组中读入信息。这里应该可以结构体数组存数的同时也可以由用户端直接输入。
二叉排序树的树形输出时只是纵向输出横不美观,可以设计成横向。由于遍历是从最底层元素开始而dos窗口只允许从上往下输入所以我没有实现纵向树形输出,只有横向树形输出。
其中有一处运行错误如图:
在进行节点插入的时候直接跳过了姓名的输入,我将主方法中插入代码里的姓名输入和成绩输入各注释掉一次运行后发现注释掉姓名后正常运行,错误处在姓名上,最后还是没有找出具体的错误。
3))程序中所有的代码段都是自己编写的,通过查阅相关书籍和请教同学对程序的功能逐步完善,我一共是花了6天的时间。第一天是用于看了看C++的书,因为已经很长时间没有接触C++了,所以对一些基本的语法已经有点模糊,借了一本C++数据结构设计方面的书大概看了一下。第二天根据课本写了写基本的功能,例如插入生成。接下来就是完善功能不断调试,其中最难的还是C++的基础不太好,对于有些算法的语言实现没有一个大致的概念,要通过查很多东西才能了解到是怎么回事,然后将代码打出来,一个代码段一个代码段的整合起来。中间犯得最大的错就是,最后才将所有的代码段整合起来运行,导致有很多错误,然后又分开独自加主方法去实现调试。总之,这次课程设计又复习了一遍C++最基础东西,以及对数据结构有了更好的认识。
您可能关注的文档
- 天然气管道定向钻穿越铁路施工方案教材.doc
- 天然气管线配套光缆施工组织设计教材.doc
- 天然气项目环境风险模板教材.doc
- 天然药物化学教材.doc
- 天然药物化学考试复习教材.doc
- 时光贵州_传统年文化喜乐汇执行案教材.doc
- 时事政治(2014年11月—2015年3月)教材.doc
- 天水市麦积区XX商住楼基础大体积混凝土施工方案教材.doc
- 时事政治2015年1月到9月汇总教材.doc
- 天坛生物财务报表教材.doc
- 2025至2030中国婴儿拉式蚊帐行业发展现状及发展趋势与投资风险报告.docx
- 2025至2030中国半导体陶瓷靶行业项目调研及市场前景预测评估报告.docx
- 2025至2030中国果汁行业供需趋势及投资风险报告.docx
- 2025至2030中国双节距滚子链行业项目调研及市场前景预测评估报告.docx
- 2025至2030全球及中国电子电气中的cPDM行业项目调研及市场前景预测评估报告.docx
- 2025至2030工业风幕行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至20305G技术行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030钛合金行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国冶金工程施工总承包行业运营态势与投资前景调查研究报告.docx
- 2025至2030铁路IT支出行业产业运行态势及投资规划深度研究报告.docx
最近下载
- 2024年中国零售商调查报告—全球化视角之海外门店拓展.pdf VIP
- 八大特殊作业(八大危险作业)安全管理知识与规范培训(PPT132页).pptx VIP
- 银行会计岗位招聘笔试题(某大型集团公司)试题集解析.docx VIP
- 磅房计量考试试题及答案.doc VIP
- 绿化养护标准及收费办法.docx VIP
- 儿童闭塞性细支气管炎的诊断和治疗(2023版)专家共识解读课件.pptx VIP
- CTX-M耐药基因流行病学调查及耐药机制研究.pdf
- 中国共产党纪律处分条例测试题附答案+考试注意事项.doc VIP
- 财务会计与税务会计差异及协调探讨.doc VIP
- (高清版)DG∕TJ 08-2410-2022 文物和优秀历史建筑消防技术标准.docx VIP
文档评论(0)