- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 深度优先遍历
分析:
深度优先遍历从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续找它的下一个新的顶点
您可能关注的文档
最近下载
- 民事陪审员培训课件.pptx VIP
- 材料科学基础:第十二章 金属材料强韧化机制.ppt VIP
- CNAS-GL27-2009 声明检测或校准结果及与规范符合性的指南.pdf VIP
- 胃脘痛护理查房.ppt VIP
- 【行业研报】2023年肯尼亚行业企业战略规划方案及未来五年行业预测报告.docx VIP
- 人民陪审员培训课件.pptx VIP
- 《氧化还原反应方程式的配平》练习题 .pdf VIP
- 部编六年级下册第11课《十六年前的回忆》一等奖教学设计说课稿.docx VIP
- GB_T 39637-2020 金属和合金的腐蚀 土壤环境腐蚀性分类.pdf
- 聚硼硅氮烷合成、掺杂及SiBCN陶瓷应用研究.docx VIP
文档评论(0)