数据结构课程设计报告-图的遍历

数据结构课程设计报告-图的遍历

ID:6329204

大小:308.50 KB

页数:26页

时间:2018-01-10

数据结构课程设计报告-图的遍历_第1页
数据结构课程设计报告-图的遍历_第2页
数据结构课程设计报告-图的遍历_第3页
数据结构课程设计报告-图的遍历_第4页
数据结构课程设计报告-图的遍历_第5页
资源描述:

《数据结构课程设计报告-图的遍历》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课程设计报告题目:图的遍历学生姓名:学号:200817020103专业班级:信管08101班同组姓名:指导教师:设计时间:2010年上学期第1周指导老师意见:评定成绩:签名:日期:26目录一、前言1.1课程设计的目的与意义………………………………………………31.2对课程设计功能的需求分析…………………………………………3二、算法思想…………………………………………………………………4三、数据结构…………………………………………………………………4四、模块划分4.1、有关队列的一系列函数…………………………………………………

2、54.2、创建图的函数……………………………………………………………54.3、图的深度优先遍历递归…………………………………………………54.4、图的广度优先遍历递归…………………………………………………54.5、深度优先遍历……………………………………………………………54.6、广度优先遍历……………………………………………………………54.7、主函数……………………………………………………………………5五、系统的概要设计1、系统功能模块图…………………………………………………………62、各模块流程图………………………………………

3、……………………7六、源程序……………………………………………………………………12七、程序的调试分析以及测试结果1、程序的调试分析…………………………………………………………202、程序的测试结果…………………………………………………………20八、附录1、课程设计心得体会………………………………………………………252、参考文献…………………………………………………………………2626一、前言1.1课程设计的目的与意义上学期我们对《数据结构》这门课程进行了学习。这门课程是一门实践性非常强的课程,为了让大家更好地理解与运用所学知识,

4、提高动手能力,我们进行了此次课程设计实习。这次课程设计不但要求我们掌握《数据结构》中的各方面知识,还要求我们具备一定的C语言基础和编程能力。通过实践我们掌握《数据结构》中的知识。对于《图的遍历》这一课题来说,所要求我们掌握的数据结构知识主要有:图的存储结构、队列的基本运算实现、图的深度优先遍历算法实现、图的广度优先遍历算法实现。对于我们学生来讲,此次课程设计是为了让我们训练自己的实际设计能力,通过设计实践,去真正获得此项目管理和团队协作等方面的基本训练和工作经验。通过课程设计的一系列训练,我们能提高如何综合运用所学知识解决实际问题的

5、能力,以及获得此项目管理和团队协作等等众多方面的具体经验,增强对相关课程具体内容的理解和掌握能力,培养对整体课程知识综合运用和融会贯通能力。1.2对课程设计功能的需求分析图的遍历并不需要是一个过于复杂的工作环境,一般来说:最合适的才是最好的。软件设计必须符合我们使用实际情况的需要。根据要求,图的遍历主要功能如下:1、用户可以随时建立一个有向图或无向图;2、用户可以根据自己的需要,对图进行深度遍历或广度遍历;3、用户可以根据自己的需要对图进行修改;4、在整个程序中,用户可以不断的按照不同的方式对图进行遍历,若不继续,用户也可以随时跳出

6、程序,同时,如果用户输入的序号错误,程序会提示用户重新输入序号;二、算法思想26本课题本人所采用的是邻接矩阵的方式存储图,,实现图的深度、广度两种遍历,并将每种遍历结果输出来。2.1.1图的邻接矩阵的建立对任意给定的图(顶点数和边数自定),,根据邻接矩阵的存储结构建立图的邻接矩阵。2.1.2图的遍历的实现图的遍历包括图的广度优先遍历与深度优先遍历。对于广度优先遍历应利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)来实现。首先建立一空队列,从初始点出发进行访问,当被访问时入队,访问完出队。并以队列是否为空作为循环控制

7、条件。对于深度优先遍历则采用递归或非递归算法来实现,这里我所采用的是递归算法。三、数据结构#defineMax10#defineFALSE0#defineTRUE1#defineErrorprintf#defineQueueSize30typedefstruct{charvexs[Max];intedges[Max][Max];intn,e;}MGraph;intvisited[Max];typedefstruct26{intfront;intrear;intcount;intdata[QueueSize];}CirQueue;四、

8、模块划分4.1、队列的初始化、进队、出队、队列空、队列满的函数;voidInitQueue(CirQueue*Q)//初始化队列intQueueEmpty(CirQueue*Q)//队列是否为空intQueueFull(CirQueu

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

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

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