You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作适用于Dijkstra算法的伦敦地铁加权图

实现伦敦地铁加权图的简便方案
  • 直接复用公开地铁数据集:别手动录入250个节点了,伦敦地铁的站点、线路及通行时间有不少公开数据集,这些数据里已经包含了你需要的节点和边权重信息,直接拿来用就能省掉大量手动整理的工作。
  • 用邻接表存储图结构:针对250个节点的规模,邻接表比邻接矩阵更高效,内存占用低且遍历速度快。用字典就能轻松实现,比如:
# 邻接表结构示例
london_tube_graph = {
    "King's Cross St Pancras": [("Euston", 2), ("St Pancras International", 1)],
    "Euston": [("King's Cross St Pancras", 2), ("Warren Street", 3)],
    # 其余站点数据批量导入即可
}
  • 批量导入数据生成图:如果拿到的是CSV或JSON格式的数据集,写个几行的脚本就能批量解析生成邻接表。比如用Python的csv模块读取每行的起点站、终点站和通行时间,自动填充到字典里,不用手动逐个添加节点和边。
  • 快速验证数据准确性:导入后抽几个常见站点的通行时间和实际地铁运行时长对比,确保边的权重准确,避免后续Dijkstra算法算出错误的最短路径。
  • 无需过度优化Dijkstra实现:250个节点的规模不算大,用基于优先队列(比如Python的heapq)的标准Dijkstra实现完全能快速算出结果,保持代码简洁易维护就好。

内容的提问来源于stack exchange,提问作者Hopvine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:12:47