【问题标题】:Bus Route Program,What kind of algorithm and data-structure do I use?公交路线程序,我使用什么样的算法和数据结构?
【发布时间】:2014-05-05 15:29:22
【问题描述】:

我有一个关于一个程序的 Java 算法的问题。我想编写一个提供有关“巴士路线”信息的 android 程序。程序运行,用户选择一个公交车站(A站),程序告诉用户“乘坐4路公交车,在B站下车。然后乘坐8路公交车,然后在C站下车。”任何人都有关于该程序算法的想法?我可以用什么来保存每条公交路线? Queuestack 或类似的东西?我可以使用BFSDFS 算法来获得最短的公交路线路径吗?

Purpose of program; 用户如何使用公共汽车找到交通路线。 (4路不直达8站,需换乘B站)

I need to know ;我使用哪种数据结构和哪种最短路径算法。

【问题讨论】:

  • 为什么不使用 Dijkstra 算法
  • @TejasPatel 我在谷歌上搜索了你问这个问题,但我没有找到你的电子邮件地址......现在我正在搜索 Dijkstra 的算法。我也不知道应该使用哪种数据结构。
  • @TeachMeJava 你在 Stack Overflow 上问过,你不应该私信用户。这将阻止未来有相同问题的用户看到答案。

标签: java algorithm data-structures shortest-path


【解决方案1】:

Implementation for Dijkstra's Algorithm in Java

在代码中初始化顶点的地方,你初始化所有的公交路线。

在定义邻接矩阵的地方,为您的每个停靠点初始化巴士可用的停靠点。现在运行算法。您可能会在每个边缘保留其他信息,例如可能的巴士号码。

【讨论】:

  • 您需要记住,节点的出边取决于节点与起点的距离。事实证明 Dijkstra 仍然有效,但实现方式有所不同。
【解决方案2】:

假设您在后台使用 Java 并且选择 Dijkstra 算法,您基本上需要获取和管理一个图形实例。甚至可能有图形库/实现已经拥有 DFS 和 BFS 算法,因此 Dijkstra 或 Kruskal。

我建议创建一个基于 Java HashTable 的图形实现。每个节点都为Key,邻接列表为Value

使用 ArrayList's、Stack's QueuePriorityQueue 可能会有所帮助。

您可能需要实现一个简单的Node 类并获取用于执行 Dijsktra、DFS、Kruskal、BFS 等的静态方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2021-02-26
    • 1970-01-01
    相关资源
    最近更新 更多