- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
数据结构实验报告
(二)
学院自动化学院学号姓名徐璐峰
日期2017-12-18
实验目的
熟练掌握图的存储方式;
了解图的特性,学习在实际问题背景下灵活运用图;
掌握图的两种最短路径算法。
实验内容
为简化问题,假设南京现有三条地铁线:1号线、2号线和3号线,线路都是双向的。3条地铁线的站点名分别如下,地铁线交叉的换乘点用T1、T2等表示。请根据3条地铁线的站点和换乘点构造图。编写程序,任意输入两个站名名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。
地铁1号线(直线)经过车站:A1A2A3T1A4A5A6A7A8T2A9A10A11A12T3A13A14A15T4A16
地铁2号线(直线)经过车站:B1T5B2B3B4B5T2B6B7B8B9B10B11T3B12B13T6B14B15
地铁3号线(环线)经过车站:C1C2C3C4C5T1C6C7C8C9C10T5C11C12C13T6C14C15T4C16C17C18
实验要求
用户从键盘输入两个不同的站名,程序输出最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次);
分别基于迪杰斯特拉算法和弗洛里德算法实现上述地铁换乘问题;
程序功能模块的划分要适当,多使用流程图来描述算法结构。
需求分析
输入的形式和输入值的范围。输入的形式需要是地铁站的名称,如“A1”、“B7”、
“C14”。所输入的的站点名不能是所要求的站点名之外的名称。
输出的形式。所输出的是基于弗洛里德算法与迪杰斯特拉算法进行的最短路径长度求解的结果,以及最短路径的车站路径编号,并在输入错误的时候允许重复输入。
程序所能达到的功能。用户输入车站起点与车站终点之后,通过迪杰斯特拉算法与
弗洛伊德算法,输出从起点到终点的最短路径长度,以及最短路径所经过的车站编号。
测试数据。
在程序运行的开始,会提示用户输入起点与终点,在用户输入起点与终点之后,程序会输出根据弗洛伊德算法所得到的最短路径所经过的车站数量,及经过的车站路径的编号。之后会再输出根据迪杰斯特拉算法所得的最短路径所经过的车站数量,及所经过的车站路径的编号。如果所输入起点或终点不存在,则会提示“起点/终点输入错误,请确认后重新输入。”之后会继续出现“请输入起点/终点:”之后,用户就可以重新输入原来输入错误的起点或终点车站名。在确认起点与终点都输入正确之后,程序就会输出最短路径与路径编号。在一次程序执行完毕后,支持用户重复输入。
概要设计
在程序中之定义了一种抽象数据类型,structGraph,它包含三个元素,intarrAcc[56][56];//邻接矩阵intverCount;//点数intarcCount;//边数。并且在程序开始的时候,还定义了长度为56的string型数组,用于存储所有的地铁站点。在程序运行开始的时候,会先调用change_train函数,在change_train函数中,会先对g.arrAcc[56][56]邻接矩阵进行初始化。之后调用floyd函数,及printres函数,输出起点到终点的最短路径长度及路径车站编号。之后,会继续调用Dijkstra函数及searchPath函数,输出起点到终点的最短路径长度及路径车站编号。
详细设计
类视图
整个程序中所写的函数有:floyd函数,transform函数,printres函数,Dijkstra函数,
searchPath函数,change_train函数。
Floyd函数(图g,邻接矩阵dis[][],用来存储路径的矩阵path[][])
{
//初始化path矩阵
For(row0to总的站点数)
For(col0to总的站点数)path[row][col]←row;
For(k0to总的站点数)For(i0to总的站点数)
For(j0to总的站点数)
{
//存在更近的路径,更新
If(dis[i][j]dis[i][k]+dis[k][j]){
dis[i][j]←dis[i][k]+dis[k][j];path[i][j]←path[k][j];
}
}
}
Transform函数(字符c)
{
For(i0to站点数)
If(存储所有站点的数组s[i]==c)
返回i;
}
Printres函数(图Graph*p,经floyd函数转化后的邻接矩阵dis[56][56],存储路径的矩阵
pat
您可能关注的文档
- ((驾驶员管理及车辆管理规定.docx
- 应用统计案例.doc
- 建筑装饰装修工程施工组织设计.docx
- 锐捷实验题的网络工程课程设计.docx
- 工业计算机网络作业.docx
- 星源计划书正文.docx
- 全国第五届金奖作品绿尔康.docx
- 全智能语音交互解决方案(3月)--销售培训版x.pptx
- 网络技术期末背诵重点知识.docx
- 最新电大《网络实用技术基础》机考网考纸考题库及答案.docx
- 2024-2025学年初中物理八年级上册(2024)苏科版(2024)教学设计合集.docx
- 2024-2025学年初中信息技术桂科版七年级下册-桂科版教学设计合集.docx
- 《新冠病毒变异株感染病例的社区防控与疫情监测研究》教学研究课题报告.docx
- 2024-2025学年高中物理人教版选修3-5-人教版2004教学设计合集.docx
- 2024-2025学年高中化学必修第一册沪科版(2020)教学设计合集.docx
- 2024-2025学年高中英语选择性必修 第一册译林版(2019)教学设计合集.docx
- 2025年储能系统在辅助服务市场定价机制下的技术创新与应用.docx
- 2024-2025学年小学综合实践活动沪科黔科版六年级下册-沪科黔科版教学设计合集.docx
- 《金融开放与监管改革:我国金融监管体系变革与金融市场监管能力提升路径》教学研究课题报告.docx
- 初中化学移动学习环境下轻量AI教育资源性能优化与教学创新教学研究课题报告.docx
最近下载
- 2024年全国眼视光行业眼镜验光员技能大赛理论参考试题库(含答案).pdf VIP
- 2025年11课《种树郭橐驼传》理解性默写练习(附参考答案) .pdf VIP
- 21个行业审核作业指导书.doc VIP
- 医院加强信息化建设 提高信息化水平工作情况四篇.docx VIP
- 《从局部抗战到全面抗战》部优教学设计.doc VIP
- 施耐德 ATV320 安全功能手册.pdf VIP
- 汉钟压缩机调试技术-hanbell.ppt VIP
- powmax国迈变频器POWSD-E3 交流伺服驱动器随机手册V17.pdf VIP
- 疫源地消毒总则gb19193-2015.docx VIP
- ASTM F1224-89(2004)E1 美国材料与试验协会标准.pdf VIP
文档评论(0)