首页 > 其他分享 >三月十三日

三月十三日

时间:2023-03-13 21:58:49浏览次数:61  
标签:BFS 地点 路径 线路 三月 算法 地铁 十三日

第一次结对作业————地铁查询系统

第一阶段————web地铁查询系统

在地铁查询系统中我认为最难的还是数据库的建表,按照ppt中所说没数据库需要存储线路号,车站唯一标识ID,线路的各个站点名称,车站的换乘信息等信息。

我的思路是,一个路线间一个表,表中有id,nameid,name,和change,其中id标识线路号,nameid标识车站的标识id,name表示线路中各个站点的名称,change表示可以换乘的路线。

将地铁线路中的每一个站点路线都存储到数据库中,当查询某一地点到另一地点的时候,分为两种情况,第一种便是两个地点在同一条地铁线路上,这时候只要查询到两个地点在哪一条线路上即可。两一种可能性便是两个地点不在同一条线路上,已在两条线路上为例(当然也有可能在三个及以上线路上)首先要找到两个地点分别在哪一条线路上,然后找到两个线路的相交地点(即两条线相会的地点)然后输出在哪转乘那一线路就可。

当计算两个地点之间最短的换乘路线的时候,借鉴网上:

  • DFS/BFS算法:适合解决解决单源最短路径,从起始结点开始访问所有的深度遍历路径或广度优先路径,则到达终点结点的路径有多条,取其中路径权值最短的一条则为最短路径。DFS比较适合判断图中是否有环,寻找两个节点之间的路径,有向无环图(DAG)的拓扑排序,寻找所有强连通片(SCC),无向图中寻找割点和桥等;而BFS则比较适合判断二分图,以及用于实现寻找最小生成树(MST),如在BFS基础上的Kruskal算法。还有寻找最短路径问题(如Dijkstra算法)。
  • Floyd算法:Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法。而我们这里每站之间的权值是一样的,显然我们可以选择用更简单的算法,所以不考虑使用该算法。
  • Dijksta算法:Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

通过上述分析,再加之地铁地图属于稀疏图,而且该图中每条边的权值恒定,所以我决定用最为简单也较为适合该项目的BFS算法来实现。

(目前代码还未实现,只有思路)

 

标签:BFS,地点,路径,线路,三月,算法,地铁,十三日
From: https://www.cnblogs.com/mine-my/p/17213033.html

相关文章

  • 三月十一日
    今天完成了button按钮的跳转,其具体步骤为声明控件---找到控件---实现跳转和匹配对应用户名和密码,获取edittest里面的账号和密码与规定的进行匹配成功则进行跳转。首先声明......
  • 三月十日
    今天要完成登陆界面的优化问题。<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"><strokeandro......
  • 三月十日
    今天上了一整天课,复习了Javaweb。createStatement作用:用于执行不带参数的简单SQL语句特点:每次执行SQL语句,数据库都要执行SQL语句的编译,仅执行一次查询并返回结果......
  • 【故障公告】cc攻击又来了,雪上加霜的三月
    非常非常抱歉!今天21:20-22:10左右,肆无忌惮的cc攻击又来了,蓄意攻击者很厉害,躲过阿里云云盾的黑洞机制,轻松击垮园子的博客站点,又给大家带来了很大的麻烦,请大家谅解!今年......
  • 三月九日
    今天要学习textview、button、edittext制作简易的登陆页面。什么是textview、button、edittext和讲解属性、设置、和对应java文件如何设置。1.android:maxEms=""是设置每......
  • 三月八日
    今天接着昨天的内容Android开发日志打卡APP(二)地址为(6条消息)Android开发日志打卡APP(二)_android中app开发日报_失散多年的哥哥的博客-CSDN博客。但是优点看不明白,还是转战......
  • 三月七日
    今天学习的内容主要是android开发打卡app(一)其博客地址为(6条消息)Android开发日志打卡APP(一)_失散多年的哥哥的博客-CSDN博客在app中主要用到的控件又:TextView、Button、E......
  • 三月六日
    今天上课王建民老师讲了关于代码的测试,代码要一个一个模块的进行测试,而不是堆积在一起,这样既烦乱又容易出现错误。其次讲了代码的三个重要知识点,格式,变量名和注释。课后小......
  • 2023年2月中国数据库排行榜:OTO新格局持续三月,人大金仓、AnalyticDB排名创新高
    玉兔迎春至,榜单焕新颜。 2023年2月,兔年开年的 墨天轮中国数据库流行度排行 火热出炉,本月共有259个数据库参与排名,排行榜样式去掉了较上月和半年前得分差的数据显示,更加......
  • 二月不减肥三月徒伤悲,手机怎么每天提醒自己减肥?
    进入2023年的公历2月后,我国很多地区的天气都在转暖,紧接着我们身上的衣服就要一件一件变薄了,再等一段时间就到了需要“露肉”的季节。爱美之心人皆有之,于是有不少女孩们都......