




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 20142015学年度第 二 学期数据结构课程设计实验报告学院 应用数学学院 专业班级 学号 姓名 手机 指导教师 刘志煌 2014年 12月5日一、 标题与设计内容1 编程实现二叉排序树,包括生成,插入,删除。2 编写一个函数,判断自己生成的二叉树是否为二叉排序树。3 对二叉排序树进行先根,中根和后根非递归遍历。4 每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。5 分别用二叉排序树和数组去存储一个班(50 人以上)的成员信息(至少包括学号、姓名、成绩 3 项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么?6 对数据测试,分析,总结和改进二、 实现算法
2、与关键代码1. 主要结构:包括头文件,结构体数组,实现二叉排序树的各种方法,二叉树与数组查找效率对比方法,以及主方法。2. Declarations :C的头文件以及自定义类型3. 二叉排序树的生成:数组的数据读入二叉树中4. 二叉排序树的插入5. 二叉排序树的删除6. 判断是否为二叉排序树7. 非递归先序遍历8. 非递归中序遍历9. 非递归后序遍历10. 二叉排序树与数组查找效率的比较11. 主函数三、 数据测试与分析1. 开始界面2. 二叉排序树的生成3. 判断是否为一颗二叉排序树4. 插入一个新的节点5. 删除操作6. 非递归前序遍历7. 非递归中序遍历8. 非递归后序遍历9. 二叉排序
3、树与数组查找速率的比较四、 总结(自己做了哪方面的内容,有何亮点)1. 二叉排序树的生成,插入,删除。这是最基础的一部分,在做这部份的时候没有考虑后面的数组数据的读入,直接由用户写入要创建的数据,在做到后面进行程序的调试的时候由于要用到50个元素信息,如果每次都通过用户端打入是很不方便的,于是将代码段整体加入结构体数组,用于存放50个元素信息。同时二叉排序树的的节点值直接从结构体数组中写入。2. 非递归遍历操作三种非递归遍历操作:前序,中序,后续。在编写三种遍历的时候,先写了一下递归遍历操作,然后用指针进行非递归的便利操作。3. 树形输出二叉排序树的的树形输出,根据左右子树遍历操作得出了树形输
4、出。这里用的树形输出是将列进行排,出来的图不是很好看,然后我试着将树横向输出,然后发现遍历时是从树的最底层数据开始,问题在于运行窗口只能从上往下,最后还是没有得出能横向的算法,只有纵向的树形输出。4. 二叉排序树与数组查找效率的比较通过调用了clock();方法,在两种查找方式开始之前分别获取一个时间start,在查找之后获取一个时间end,将两个求差,用时最短的说明时间最短,同时也就是效率最高。五、 自评(根据自己的情况给自己一个等级/分数,说明理由,包含自己实现了哪一块,哪一块还没有解决。一定要写,不然就会不及格)1. 自评分:2. 理由1) 实现代码块:二叉排序树的生成,插入,删除,树形
5、输出,判断是否为二叉排序树,二叉排序树与数组查询效率的比较都已经实现。2) 还需改进的地方:A 二叉排序数生成的时候由于要求用50个数据,所以要我将开始的由用户端输出直接改成用结构体数组存储50个信息元素,二叉排序树直接从结构体数组中读入信息。这里应该可以结构体数组存数的同时也可以由用户端直接输入。B 二叉排序树的树形输出时只是纵向输出横不美观,可以设计成横向。由于遍历是从最底层元素开始而dos窗口只允许从上往下输入所以我没有实现纵向树形输出,只有横向树形输出。C 其中有一处运行错误如图:在进行节点插入的时候直接跳过了姓名的输入,我将主方法中插入代码里的姓名输入和成绩输入各注释掉一次运行后发现注释掉姓名后正常运行,错误处在姓名上,最后还是没有找出具体的错误。 3)程序中所有的代码段都是自己编写的,通过查阅相关书籍和请教同学对程序的功能逐步完善,我一共是花了6天的时间。第一天是用于看了看C+的书,因为已经很长时间没有接触C+了,所以对一些基本的语法已经有点模糊,借了一本C+数据结构设计方面的书大概看了一下。第二天根据课本写了写基本的功能,例如插入生成。接下来就是完善功能不断调试,其中最难的还是C+的基础不太好,对于有些算法的语言实现没有一个大致的概念,要通过查很多东西才能了解到是怎么回事,然后将代码打出来,一个代码段一个代码段的整合起
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《密铺》(教案)2024-2025学年数学四年级下册
- 二年级上册数学教案-7.12 观察物体-青岛版(五年制)
- 2025年汽车美容员工合同模板
- 2025年学习雷锋精神62周年主题活动方案 (汇编3份)
- 部编版语文四年级下册第二单元 阅读分享课《灰尘的旅行》 表格式公开课一等奖创新教学设计
- 期末检测(二)2022-2023学年语文三年级上册(部编版)
- 《第5课 网上搜索》教学设计教学反思-2023-2024学年小学信息技术人教版三起四年级下册
- 2024年UV无影胶水项目资金筹措计划书代可行性研究报告
- 2025年度夫妻财产共管与家庭责任分担协议
- 2025年度影视演员安全防护与保险赔偿合同
- 直肠癌课件完整版本
- 2024年山东省青岛市普通高中自主招生物理试卷(含解析)
- 胸部影像检查护理常规
- 【Z精密零部件公司企业文化建设问题及优化建议14000字(论文)】
- 2024-2030年红茶行业市场深度调研及发展趋势与投资战略研究报告
- 2024Growatt 15000-25000UE古瑞瓦特光伏逆变器用户手册
- 2024年国家公务员考试专业分类专业目录
- 家庭医生签约知识讲座课件(共22张课件)
- DL∕T 5032-2018 火力发电厂总图运输设计规范
- 国际留学合作框架协议书
- DL-T 297-2023 汽轮发电机合金轴瓦超声检测
评论
0/150
提交评论