|
|
|
@ -7,7 +7,7 @@
|
|
|
|
|
4、查询某两个地点之间的最短路径
|
|
|
|
|
|
|
|
|
|
*为有效地存储和处理数据,我们采用了图结构的数据结构。具体来说,我们使用邻接表存储每个站点及其相邻站点的信息,并使用哈希表存储站点名称和编号的映射关系。
|
|
|
|
|
*为了找出两点间最短路径,采用了Dijkstra算法,算法效率较高。
|
|
|
|
|
*为了找出两点间最短路径,采用了Dijkstra算法。
|
|
|
|
|
*项目的效果从整体来看运行流畅,可以为市民提供方便、快捷的地铁路线查询和导航服务。
|
|
|
|
|
*任务分工及工作量占比:
|
|
|
|
|
|
|
|
|
@ -172,8 +172,9 @@ private:
|
|
|
|
|
通过以上算法的实现,我们可以实现在地铁图中查找两个站点之间最短路径和查找某个站点的所有邻居站点。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#4. 系统测试
|
|
|
|
|
# 4. 系统测试
|
|
|
|
|
|
|
|
|
|
```c++
|
|
|
|
|
(1)输入:1
|
|
|
|
|
结果:输出了所有的站点及简略介绍
|
|
|
|
|
(2)输入:2
|
|
|
|
@ -195,5 +196,5 @@ private:
|
|
|
|
|
请输入目的地点:5
|
|
|
|
|
总距离是: 50 , 经过路径为:3--->5
|
|
|
|
|
|
|
|
|
|
#5. 总结
|
|
|
|
|
我们设计的城市地铁导航系统旨在帮助用户方便快捷地查找和选择地铁线路及站点,并提供实时更新的地铁运行状态和乘车提示。我们在创建项目时遇到的问题有为降低空间复杂度,因而采用邻接表存储结构。Dijkstra的时间复杂度是O(n2),效率并不高,我通过查阅文献的方式了解到可以进一步采用优先队列的思路优化它,在存储时就按照从小到大的顺序实现,这样在选择节点时直接取队首距离最小的节点即可,可以将时间复杂度优化到O(logn)左右
|
|
|
|
|
# 5. 总结
|
|
|
|
|
我们设计的城市地铁导航系统旨在帮助用户方便快捷地查找和选择地铁线路及站点,并提供实时更新的地铁运行状态和乘车提示。我们在创建项目时遇到的问题有为降低空间复杂度,因而采用邻接表存储结构。Dijkstra的时间复杂度是O(n2)。
|