树与二叉树的转换的实现_课程设计 (2)

树与二叉树的转换的实现_课程设计 (2)

ID:18581366

大小:72.50 KB

页数:9页

时间:2018-09-19

树与二叉树的转换的实现_课程设计 (2)_第1页
树与二叉树的转换的实现_课程设计 (2)_第2页
树与二叉树的转换的实现_课程设计 (2)_第3页
树与二叉树的转换的实现_课程设计 (2)_第4页
树与二叉树的转换的实现_课程设计 (2)_第5页
资源描述:

《树与二叉树的转换的实现_课程设计 (2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、XXXXX学院计算机与信息工程学院课程设计报告课程名称《数据结构》课题名称树与二叉树的转换的实现_课程设计专业计算机软件工程班级XXXXXXXXXXXXXXX学号XXXXXXX姓名XXXX联系方式XXXXXXXXXXXX指导教师XXXX2014年6月17日-1-目录一、数据结构课程设计任务书﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒11.1设计题目﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒11.2设计要求﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒1二、设计小组成员﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒1三、指导老师﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒1四、设计课题﹒﹒﹒﹒﹒

2、﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒1五、基本思路及关键问题的解决方法﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒1六、算法及流程图﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒2七.调试过程中出现的问题及相应解决办法﹒﹒﹒﹒﹒﹒﹒3八、课程设计心得体会﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒3九、源程序﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒4十、参考文献及资料B一、数据结构课程设计任务书1.1.设计题目树与二叉树的转换实现1.2设计要求1、以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。2、遍历的内容应是千姿百态的。二、设计小组成员金亮三.指导老师

3、武彬四.设计课题实现树与二叉树的转换的实现,以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。(多种遍历可以只实现一个。)五.基本思路及关键问题的解决方法1.二叉树创建用链表实现创建一个树结点的结构体,从键盘输入数据,存入数组。把下标为2*i+1的值存入左孩子,为2*i+2的存入右孩子。2.先序遍历二叉树的递归算法若二叉树为空,则空操作;否则(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。voidPreOrder(BiNoderoot)。3.后序遍历二叉树的递归算法若二叉树为空,则空操作;否则(

4、1)后序遍历左子树;(2)后序遍历右子树。(3)访问根结点;voidPostOrder(BiNoderoot)。4.先序非递归算法BiNode根指针,若BiNode!=NULL对于非递归算法,引入栈模拟递归工作栈,初始时栈为空。5.后序非递归算法BiNode是要遍历树的根指针,后序遍历要求在遍历完左右子树后,再访问根。需要判断根结点的左右子树是否均遍历过。voidF_PostOrder(BiNoderoot)6.层次序遍历算法按照树的层次从左到右访问树的结点,层序遍历用于保存结点的容器是队列。voidLevelOrder(BiNoderoot)。六

5、、算法及流程图B退出程序层次遍历开始双亲法建树按照格式输入各个结点输出树的结点情况1主菜单前序遍历(递归)后序遍历(递归)前序遍历(非递归)后序遍历(非递归)输出遍历结果副菜单退出程序23540069七.调试过程中出现的问题及相应解决办法在调试过程中出现了很多问题,定义表过长的,处理记录数量错误时程序的异常,记录冲突次数等等。通过问同学,查资料,我知道路定义过长则减少某些属性的字符数。处理记录数量错误时程序的异常则在被调用类(被主程序或其他类调用的类)中捕获异常记录到容器类中,然后抛出;在调用类(非主程序类)中继续捕获,然后同样是记录到错误容器继续

6、向上抛出;依此方法直到最后在主程序中(入口程序类)捕获异常(记住这个捕获一定要捕获所有可能异常的情况)然后连同此次错误信息一并记录到错误容器,写入错误日志,给出相应提示。二叉树遍历中用到的最重要的一个思想就是递归调用,这次作业使我对递归有了深入的理解,尤其是对退回上一层后应执行的语句和结点位置的丝路更加清晰。程序调试比较顺利。B八、课程设计心得体会以前用C编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭意识和简单的语句来堆砌出一段段程序。现在变成感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素,首先选取自己需要

7、的数据结构,是树还是图或是别的什么。然后再选定一种或几种存储结构来具体的决定后面的函数的主要风格。最后在编写每一个函数之前,可以自习斟酌出对挑选出最合适当前状况的算法。这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。这样无形中就提高了自己编写程序的质量。另外,我还体会到深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。这次试验也让我看到了自己的不足,还是不太用模版类。还有许多关于C++的一些比较具体的东西还不太懂,比方说指针。这次

8、实验还让我意识到只有不管在机子上调试程序,自己的水平才能得到提高。我会继续我的兴趣编写程序的,相信在越来越多的尝试之后,自

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。