计算地铁线路最短路径

我们要将地铁线路信息等用一个文本文件的形式保存起来,应保存的信息应包括地铁线路名称、各个地铁站点的名称以及车站换乘信息,使得应用程序可以通过读取这个文件,就能掌握关于北京地铁线路的所有信息。

需求1:

实现一个支持显示地铁线路与计算换乘的程序(对于Java项目,Main方法所在文件名需为 subway.java)。之后,用户可以通过命令行启动这个程序。程序在启动时,会读取不同命令对应的命令行参数。对于地铁线路信息图,我们约定它采用参数 -map 作为标志。程序启动时需要通过读取 -map 参数来获得对应的自定义地铁文件(命名为 subway.txt),从而得到地铁线路图的信息。一个调用应用java程序的示例如下:

java subway -map subway.txt

需求2:

现在程序里已经与地铁文件解耦了,那么我们就可以在这个的基础上做一些基础的查询操作。比如说,用户希望查询指定地铁线经过的站点。这样,在应用程序需要支持一个新的命令行参数 -a,它指定了用户希望查询的地铁线路。这样,在给定地铁线路时,你的程序就需要能够从线路的起始站点开始,依次输出该地铁线经过的所有站点,直到终点站。输出的文件我们使用 -o 命令行参数来指定。一个调用应用java程序的示例如下:

java subway -a 1号线 -map subway.txt -o station.txt

需求3:

如果用户希望坐地铁,他希望能通过最少的站数从出发点到达目的地,这样就可以在命令行中以 -b 参数加两个地铁站点名称分别作为出发与目的,比如用户希望知道 洪湖里 到复兴路 之间的最短路线是怎样的,他就可以使用如下命令让程序将结果写入 routine.txt 中。

subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt

你的程序将计算从出发到目的站点之间的最短(经过的站点数最少)路线,并输出经过的站点的个数和路径(包括出发与目的站点)。注意,如果需要换乘,请在换乘站的下一行输出换乘的线路。上面样例的输出就会存入 routine.txt 文件中,文件内容如下:

3

洪湖里

西站

6号线

复兴路

值得注意的是,请严格按照要求输出,不要增加任何额外输出或提示语。

问题分析:其实就是在无向图中求两个节点间的最短路径。

思路:Dijkstra算法步骤如下

1:遍历所有节点找到未访问过的节点中累积权值(其实就是从源节点到当前节点的路径值和)最小的(设为A)。

2:遍历该节点所有可达边(连通到目标节点B),如果节点A累积权值加可达边权值小于目标节点B自身的累积权值,则对目标节点B进行更新。

3:将节点A设定为已访问。

4:重复(1)直到所有节点均访问完毕。

java地铁线路规划_地铁线路规划——简单分析相关推荐

  1. 地铁供电系统原理图_地铁供电系统智能化发展原稿(图文高清版)

    地铁供电系统智能化发展(原稿) 1.将中压kV或kV电源降为V或V.地铁供电系统智能化发展(原稿).摘要供电系统在整个地铁运营过程中发挥着重要作用.当前面板上,只需要简单的键操作就能够实现各种场景模式 ...

  2. java实现apriori算法_各种排序算法的分析及java实现(一)

    阅读本文约需要7分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下用Navicat for Mysql导入.sql文件的 ...

  3. java地铁售票机系统_地铁售票机用java怎么样编写程序

    class Check { private double money; private String user="李某某"; private String password=&qu ...

  4. c++设计地铁售票系统_地铁售票系统设计思想及部分代码

    设计思想:地铁售票系统的关键点在于换乘,所以首先要分为换乘和不换乘两种情况.不换乘比较简单,通过起始站名和终点站名查询他们的num,然后list打包输出到jsp就可以.换乘的话就先要找到两条线路,找到 ...

  5. 地铁供电系统原理图_地铁小百科——带你认识地铁供电系统

    2020年,人们最离不开的就是电 没有了电,手机电脑将面临关机 没有了电,家居电器失去了动力 没有了电,人们的生活将陷入一片混乱 图片来源网络 然而更糟糕的是 没有了电 庞大的地铁会停止运行 城市轨道 ...

  6. 软件工程大学生职业生涯规划_大学生职业生涯规划的现实意义

    点击上方蓝字关注我们 大学生职业生涯规划 职业生涯规划不仅具有很大的理论价值, 同时还具有很强的现实意义. 大学生进行职业生涯规划的现实意义 体现在以下几个方面. 帮助大学生充分认知自我 很多大学生能 ...

  7. 地铁票务管理系统_地铁票务管理工作总结

    [www.gz85.com - 票务管理工作总结] 票务工作主要集中到车站,可以说,地铁车站是最基础的一线生产单位,地铁收益中的票务工作需要由此开始,只有票务工作做好了,才能确保各部门有效运行,形成统 ...

  8. 地铁票务管理系统_地铁票务管理系统-.doc

    地铁票务管理系统- 武昌工学院毕业论文(设计)专用稿纸 PAGE 本科毕业论文(设计) 论文题目 : 地铁票务管理系统 姓名 : 文杰 学号 : 1 班级 : 01班 年级 : 10级 专业 : 信息 ...

  9. 地铁供电系统原理图_地铁工作原理?

    展开全部 地铁是靠供电62616964757a686964616fe58685e5aeb931333365656634运行的,地铁的供电方式主要如下: 一.架空电缆 架空接触网(又称接触网供电)供应电 ...

最新文章

  1. oracle 主机名改ip,[oracle 10.2]主机名或者IP地址改变造成的dbconsole服务无法启动解决...
  2. /dev/null 位桶
  3. Centos 7 安装 Haproxy
  4. 有关css和js针对不同浏览器兼容的问题
  5. 一元操作符“++”,“- ” 之强制转换数值
  6. Hough变换原始形式-直线检测
  7. 配置一个 MVC 项目时 遇到的
  8. 04.卷积神经网络 W1.卷积神经网络(作业:手动/TensorFlow 实现卷积神经网络)
  9. 【工具与解决方案】从做项目中积累学习
  10. Python写入文件的工具类
  11. .net mvc html使用方法,C# ASP.NET MVC HtmlHelper用法汇总
  12. 黑马博客——详细步骤(三)项目功能的实现之新增用户
  13. 如何用计算机放出音乐,如何录制电脑内部播放的声音及音乐 - 楼月语音聊天录音软件...
  14. Git 的下载、安装、本地环境配置教程
  15. ofd软件linux,数科和福昕OFD软件同银河麒麟桌面操作系统完成互相兼容认证
  16. Java面向对象OOP思想概述
  17. Kaminari的几个对象
  18. no interpreter
  19. 30000台苹果电脑遭恶意软件入侵,包括最新的M1系列!
  20. Win10 1709 无法访问局域网共享问题及解决

热门文章

  1. Django-restframework 之 Exceptions分析
  2. 梭子鱼推出Microsoft Office 365 邮件威胁扫描服务
  3. mysql wait_timeout 8小时问题解决,tomcat数据源的配置
  4. 蓝桥杯“基础练习:特殊回文数
  5. 跨平台打造移动原生应用的10大武器
  6. Entity Framework 出现 此 ObjectContext 实例已释放,不可再用于需要连接的操作 的错误...
  7. docker安装nginx实例
  8. 关闭Delphi的RTTI
  9. 前端神器—Google Chrome Devtools细节详解
  10. iOS开发 nil Nil NULL NSNull 的使用