地铁线路最短路径
项目介绍
-
主要功能
![]()
提供一副地铁线路图,计算指定两站之间最短(最少经过站数)乘车路线;输出指定地铁线路的所有站点。以北京地铁为例,地铁线路信息保存在data.txt中,格式如下:
地铁线路总数
线路名1 站名1 站名2 站名3 ...
线路名2 站名1 站名2 站名3 ...
线路名3 站名1 站名2 站名3 ...... -
实现语言
java -
实现算法
迪杰斯特拉算法(Dijkstra)
读取所有的地铁线路之后,将地铁信息转化为一个以换乘站为结点、与相邻换乘站的距离(一站为一距离)为边的加权无向图存储在二维数组中。
查找起始站和目的站所在的路线,如果在同一条路线,则先记录两站之间不换乘的路径。如果该路径上无换乘站,则直接输出该路径。
如果起始站、目的站本身都是换乘站,则用dijkstra算法求出最短路径并记录换乘次数。
如果起始站和目的站不都为换乘站,查找它们相邻的换乘站并记录到相邻换乘站的距离,相邻的换乘站可能有多个。以相邻换乘站为起点、终点,用dijkstra算法求出最短路径并记录换乘次数。 -
输入格式:
//(提示)请输入起始站:
用户输入的起始站名
//(提示)请输入目标站:
用户输入目的站名
输出格式:
总共需要乘坐n站#(包括目的站但不包括起始站)
起始站(线路名1)……换乘站(线路名1->线路名2)……目的站(线路名)
线路1->线路2……#输出所有的换乘线路
//(如果起始站是换乘站,则线路名选择下一站的线路名;如果目的站是换乘站,则线路名选择上一站的线路名)
//(如果相同站数有多条线路,则输出多条线路) -
需求理解
- 程序能正确读入地铁线路文件,并处理地铁线路信息
- 程序能正确处理输入的起始站和目的站信息
- 程序能正确计算出两站之间的最短路径并输出
- 流程图
![]()



浙公网安备 33010602011771号