地铁线路规划简要分析
需求分析
1、设计地铁站信息文件的存储格式
2、设计文件的读取和代码中地铁站信息的存储格式
3、设计线路的查询
4、设计任意两站点最短线路的查询功能
5、设计使用命令行启动程序
6、性能测试、时间复杂度的优化和bug测试
实现思路
1、项目存在线路和站点两个实体,存在一对多的关系;同时需要注意可换乘线路。
2、文本采用(线路号,站点, 第几站,是否开通(1:开通;0:未开通))的存储格式,对于站点是否能够换乘,在代码中实现。
| 线路号 | 站点 | 站点号 | 是否开通 |
| 一号线 | 刘圆 | 1 | 1 |
| 一号线 | 西横堤 | 2 | 1 |
| 二号线 | 曹庄 | 1 | 1 |
| 三号线 | 南站 | 1 | 1 |
| 五号线 | 北辰科技园北 | 1 | 0 |
3、读入文本内容,生成无向图;考虑到任意两站点的最短路径,采用Floyd算法,时间复杂度为O(n)。
4、输出文本格式为(站点数、线路号、站点 )
| 3 |
| 1号线 |
| 洪湖里 |
| 西站 |
| 6号线 |
| 复兴路 |
5、在语言选择上,使用java进行编写, 在IDEA 进行开发,两个调用应用程序:
subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt
java subway -a 1号线 -map subway.txt -o station.txt
个人说明
在实现过程中,将许多步骤理想化,如:保证程序的输入一定是正确的;不考虑两站点距离的差异。
无向图在代码中的生成分为邻接矩阵和链表的形式。由于许多站点之间不存在直接相连的线路,使用链表能够减少内存的消耗;邻接矩阵在java代码实现上较为简单。具体操作时再定。

浙公网安备 33010602011771号