天津地铁出行线路规划项目需求分析与设计思路分析
项目概要
以下是天津地铁线路总图,本项目的受众可以通过本软件,获得天津市地铁出行最便捷,最快速的线路推荐。
需求分析
- 实现一个帮助进行地铁出行路线规划的命令行程序。
- 支持地铁线路的更改,站点更改、取消与添加,以及线路的局部封闭。
- 支持查询线路的所有站点。
- 支持查询到某终止站点的途径最少站点的路线。
数据存储结构分析
由于单一的线路表与站点表是无法表示如此复杂的地铁线路情况的。
有多个前驱的站点如:,以及有多个后继的站点如:,这种情况无法只通过这两个表处理,所以引入第三张边表
- 线路表与站点表是一对多的关系
- 线路表与边表是一对多的关系
- 边表与站点表是多对多的关系
主算法分析
- 因为是要查询途径站点最少的线路,所以站与站之间的距离可以都看成是1,那么这样一来就可以忽略站与站之间的物理距离,仅以这处理完的逻辑距离来处理整个地铁线路,那么要求途径站点最少就变成了寻找两个站点之间的最短路了。
- 又因为天津地铁线路总点数不多,是稀疏图,所以使用在稀疏图上表现优秀的spfa算法。
- 关于建图,因为有边表的存在,所以只需要对边表进行建图即可,而且不会导致信息的丢失,且不会存在冗余信息。(同一条边只会出现一次)
- 且由于边表,使更改线路变得十分方便,只要先更改站点表,再修改边表即可。
原始数据输入格式
直接按照每条线路输入途径的每一个站点即可,线路与站点之间用’:‘号隔开,站点与站点之间用’,’隔开,便于批量操作。
如:
一号线:刘园,西横堤.....
二号线:小淀,丰产河.....
原文地址:https://www.cnblogs.com/Archer-Luo/p/11546387.html
时间: 2024-10-07 12:41:11