Java Dijkstra算法:错误路径
当我再次将路径计算为顶点Java Dijkstra算法:错误路径,java,algorithm,dijkstra,Java,Algorithm,Dijkstra,当我再次将路径计算为顶点C到M 正确的路径应该是 C -> B -> N -> M 但事实确实如此 A -> B -> N -> M 我用了这个密码 这是我的图表的图片: 这是因为您首先调用函数compute for A,然后调用函数compute for C。某些字段如下: public double minDistance = Double.POSITIVE_INFINITY; public Vertex previous; for (Vertex
C到M
正确的路径应该是
C -> B -> N -> M
但事实确实如此
A -> B -> N -> M
我用了这个密码
这是我的图表的图片:
这是因为您首先调用函数compute for A,然后调用函数compute for C。某些字段如下:
public double minDistance = Double.POSITIVE_INFINITY;
public Vertex previous;
for (Vertex v : vertices) {
v.clear();
}
已经有一个值,因此您需要删除a的PathCalculation或清除此值,您可以使用以下函数执行此操作:
public void clear() {
minDistance = Double.POSITIVE_INFINITY;
previous = null;
}
在这个Vertex类中,并像这样调用它:
public double minDistance = Double.POSITIVE_INFINITY;
public Vertex previous;
for (Vertex v : vertices) {
v.clear();
}
computePaths之前(v2)代码>
是代码的在线版本,您可以看到输出为:
Distance to B: 1.0
Path: [A, B]
Distance to M: 5.0
Path: [C, B, N, M]
你的图表是什么?!您既没有发布实际代码,也没有发布图表。你希望有什么人能帮助你?对不起,我不能发布更多的链接和代码