太空漫游_数据结构康奈程设计_邵阳学院物联网工程陈汝涛.docVIP

太空漫游_数据结构康奈程设计_邵阳学院物联网工程陈汝涛.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
太空漫游_数据结构康奈程设计_邵阳学院物联网工程陈汝涛

课程设计(论文) 题 目 名 称 太空漫游 课 程 名 称 数据结构课程设计 学 生 姓 名 陈汝涛 学 号 1341306005 系 、专 业 信息工程系、13级物联网工程 指 导 教 师 黄同成 2014年 12 月 22 日 摘 要 为了估计预算,现在需要知道终点星球的接待站应该设计多大容量,浏览并分析所需景点信息,选择相应选项即可了解相应方案详情。输出景点星图、各景点介绍及其空间站的容量大小,路径中包括到达各景点的最短路径、花费最小路径、深度优先遍历路径和广度优先遍历路径!才能使得每艘飞船在到达时都可以保证让全部旅客下船。 关键词:循环队列;无向图;深度优先遍历、广度优先遍历、Prim算法、Dijkstra算法;最短路径 目 录 1 问题描述 1 2 需求分析 1 3 概要设计 1 3.1抽象数据类型定义 1 3.2模块划分 3 4 详细设计 6 4.1数据类型的定义 6 4.2主要模块的算法描述 7 5 测试分析 14 6 课程设计总结 18 参考文献 18 附录(源程序清单) 19 (1) (2) (3)的抽象数据类型定义ADT Queue { 数据对象:D={ai|ai∈ElemSet,i=1,2,...,n, n≥0} 数据关系:R1={ai-1,ai|ai-1,ai∈D,i=2,...,n} 约定a端为,a端为。 ADT Queue 基本操作:初始条件:存在。操作结果:构造一个空栈S。初始条件:已存在。 操作结果:若,否则。初始条件:已存在。 操作结果:。 初始条件:已存在。 操作结果:初始条件:存在。 操作结果:的抽象数据类型定义ADT Graph{ 数据对象: 数据关系:R={} W={wij | i=1,2,…M,j=0,1,…N} R2={(vi,vj)| vi,vj∈V,i=1,2,…M,j=0,1,…N} ADT Graph 基本操作: void InitGraph(MGraph *G):初始化图的顶点集合和邻接矩阵 初始条件 操作结果: void CreateMGraph(char vert[],MGraph *G,EdgeNode edge[]):构造图G 初始条件 操作结果ADT EdgeNode{ 数据对象:D={∈V,wij=0,0=i=M,0=j=N}。 数据关系: 基本操作: 初始条件: 操作结果:。 本程序包括个模块: (1)主程序模块 void main() { ; ; ; } 模块 (3)模块—— (4)模块——实现的抽象数据类型——实现的抽象数据类型… 相应景点信息; … } } 最短路径模块 void PerfictPath(MGraph *G) { 调用Prim(G); } 路径探索模块 void NovelPath(MGraph *G) { 选择所需景点序号; switch(x) { 调用深度优先遍历; 调用广度优先遍历; } } 4 详细设计 4.1数据类型的定义 (1)类型 (2)类型 (3)类型 主函数 5 测试分析 测试数据及结果如下: 图5.1 迪杰斯特拉最短路径算法 分析: Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 图5.2 Prim算法 分析:此算法的精妙之处在于对求权值最小的边这一问题的分解(也正是由于这种分解,而导致了算法理解上的困难)。按照常规的思路,这一问题应该这样解决:分别从集合V-U和U中取一顶点,从邻接矩阵中找到这两个顶点行成的边的权值,设V-U中有m个顶点,U中有n个顶点,则需要找到m*n个权值,在这m*n个权值中,再查找权最小的边。循环每执行一次,这一过程都应重复一次,相对来说计算量比较大。而本算法则利用了变量tree中第k+1到第n-1号元素来存放到上一循环为止的一些比较结果,如以第k+1号元素为例,其存放的是集合U中某一顶点到顶点tree.en的边,这条边是到该点的所有边中权值最小的边,所以,求权最小的边这一问题,通过比较第k+1号到第n-1号元素的权的大小就可以解决,每次循环只用比较n-k-2次即可,从而大大减小了计算量。 图5.3 深度优先遍历 分析: 深度优先遍历从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续找它的下一个新的顶点

文档评论(0)

ayangjiayu4 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档