java - 找到两点之间的最短路径,动态规划

标签 java algorithm graph dijkstra shortest-path

<分区>

这是我的问题(路径图)

我想找到从 A 到 F 的最短路径,我读到我应该使用 Dijkstra 算法,我尝试这样做但我在设置边缘时遇到问题:

在第 79 行我设置了边缘 http://pastebin.com/UAZiP7qb

用这个算法解决这个问题是个不错的选择吗?我该怎么办?

我无法正确设置边缘:

public static void main(String[] args)
    {
        // mark all the vertices
        Vertex A = new Vertex("A");
        Vertex B = new Vertex("B");
        Vertex C = new Vertex("C");
        Vertex D = new Vertex("D");
        Vertex E = new Vertex("E");
        Vertex F = new Vertex("F");


        // set the edges and weight
        A.adjacencies = new Edge[]{ new Edge(B, 0) };
        B.adjacencies = new Edge[]{ new Edge(E, 2) };
        E.adjacencies = new Edge[]{ new Edge(F, 2) };
}

最佳答案

您将一些邻接列表保留为空。在尝试迭代它们之前检查。

while (!vertexQueue.isEmpty()) {
    Vertex u = vertexQueue.poll();

添加了下两行

    if (u.adjacencies == null)
        continue;

        // Visit each edge exiting u
        for (Edge e : u.adjacencies)

关于java - 找到两点之间的最短路径,动态规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596004/

相关文章:

java - 如何从单个类执行多个 JUnit 测试套件?

algorithm - 如何在两者之间获得更小的分段线性曲线?

algorithm - 我可以使用任意指标来搜索 KD 树吗?

regex - 如何分析正则表达式中可能存在的漏洞?

分层着色节点的算法

java - 如何停用子模块中的 Maven 配置文件?

Java - 是否可以在任何对象上调用接口(interface)方法?

graph - 层次图连接性指标

r - r中的图表

java - 通过用户输入运行外部应用程序