数据结构课程设计--图的遍历和生成树求解.doc

数据结构课程设计--图的遍历和生成树求解.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计--图的遍历和生成树求解

图的遍历和生成树求解 摘要:图是一种比线形表和树更为复杂的数据结构。在图形结构中,节点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。本程序是采用邻接矩阵、邻接表结构存储来实现对图的存储。采用邻接矩阵即为数组表示法,邻接表是图的一种链式存储结构。对图的遍历分别采用了广度优先遍历和深度优先遍历。图的最小生成树基于图的两种存储结构,采用Prim算法和Kruskal算法对图的最小生成树进行求解。 关键词:图;存储结构;遍历 ;最小生成树 目 录 1.设计背景………………………………………………………1 1.1课程设计目的………………………………………………1 1.2题目要求……………………………………………………1 2.设计方案………………………………………………………1 2.1设计方法……………………………………………………1 2.2方法实现……………………………………………………2 3. 方案实施………………………………………………………3 3.1采用的数据结构说明及类型的定义………………………3 3.2函数功能描述及相关函数的实现…………………………5 3.3程序中需说明的地方,如用到的宏及代表的意义………16 4. 结果与结论………………………………………………… 17 4.1测试数据及测试结果………………………………………17 4.2实验结论……………………………………………………19 5.收获与致谢…………………………………………………19 6.参考文献……………………………………………………20 设计背景 1.1课程设计目的 通过本课程设计,加深对《面向对象程序设计C++》课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,掌握使用面向对象程序设计语言C++,或面向对象开发平台Visual C++等,培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。学会编制结构清晰、风格良好的C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 1.2题目要求 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 通过课程设计,巩固和加深对队列以及图等理论知识的理解;掌握现实复杂问题的分析建模和解决方法,掌握包括问题描述、系统分析、设计建模、代码实现、结果分析等的方法;提高利用计算机分析解决综合性实际问题的基本能力;锻炼个人动手能力,历练自身素质。 2.设计方案 2.1设计方法 2.1.1问题的分析和结构的设计思路 1) 图的遍历和生成树求解所有功能:LinkQueue,以及队头指针front、队尾指针rear。 2)建立图的存储类型MGraph,以及顶点向量vexs[]。 3)建立图的邻接矩阵AdjMatrix[][],以及边的权值。 4)建立图的邻接表ALGraph,以及邻接表头结点的类型AdjList[],弧的结点结构类型ArcNode。 2.2.2编写函数 建立具体的功能实现函数,如初始化、录入、输出等。 1.基于邻接矩阵创建图CreateUDN(MGraph G,AdjMatrix GA) 2.基于邻接表建立图CreateALGraph(ALGraph G) 3.邻接矩阵的输出Display(MGraph G,AdjMatrix GA) 4.邻接表的输出DisplayG(ALGraph G) 5.基于邻接矩阵图进行深度优先遍历DFS1(MGraph G,int n,int v) 6.对结点队列初始化InitQueue (LinkQueue Q) 7.判断队列是否为空 QueueEmpty (LinkQueue Q) 8.顶点信息入队EnQueue (LinkQueue Q,int e) 9.顶点信息出队DeQueue (LinkQueue Q,int e) 10.基于邻接表对图进行广度优先遍历BFS(ALGraph G,int v) 11.Prim求生成树MiniSpanTree_PRIM(MGraph G,AdjMatrix GA,VertexType u) 12.Kruskal求生成树Kruskal(ALGraph G) 13. 求顶点在图中位置LocateVex(MGraph G,VertexType u),LocateVexG(ALGraph G,vertexType e) 14.主函数main() 3.方案实施 3.1 采用的数据结构说明及类型的定义 1.邻接矩阵的存储表示如下 typedef struct ArcCell { VRType adj; //VRType是顶点关系类型,对无权图,用0和1;对有权图,则为

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档