预培训-个人项目(地铁出行线路规划)
项目原址: https://edu.cnblogs.com/campus/buaa/2019BUAASummerSETraining/homework/3407
项目概述
实现一个帮助进行地铁出行路线规划的命令行程序。
地铁线路情况如下图所示:
项目需求
- 实现一个能处理正确输入的命令行的计算地铁线路最短路径的程序
- 设计地铁文件用于存储地铁信息
- 实现程序与地铁信息的解耦
命令要求:subway.exe -map subway.txt
或 java:java subway -map subway.txt
- 提供线路信息查询
命令要求:subway.exe -a 1号线 -map subway.txt -o station.txt
或 java:java subway -a 1号线 -map subway.txt -o station.txt
- 提供站点间最短路线查询
命令要求:subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt
设计思路
文件格式
{
Line: 一号线
Station: 刘园 洪湖里 ..... 李楼
}
算法
可以把地铁出行规划问题对应为无向图求最短路径问题。采用Dijkstra算法寻找最短路径,输出时每次判断下一站是否需要换乘。