1

所以我正在编写 Dijkstra 算法的 JavaScript 实现。

我从Wikipedia page阅读了很多内容,它帮助我将这些步骤转换为代码。我也读过这个 Stack Overflow question,这是我的问题的一部分。

从 A 出发,唯一的路径是 B,这给了我们

O => AB = 12;

O => C = 7

C 现在是最低距离,并且是新的当前节点

O => CD = 8

由于 D 是目的地且 8 < 12,因此选择路线 CD。

你如何在代码中实现这个决定?现在,我的脚本根据哪些节点与当前节点相邻来选择哪个节点,是否每个决定都需要通过这种新的评估来运行?

顺便说一句,是我的(凌乱的)代码。

4

1 回答 1

2

我的脚本基于要选择的节点与当前节点相邻的节点

不。您的connectedNodes列表(按距离排序)应该是全局的,而不仅仅是当前节点。

然后,对于第一个(最小距离)节点,将所有未访问的邻居添加到列表中,仍然按距离排序。标记当前访问的节点并继续下一个最小距离未访问的节点。

于 2012-10-29T01:37:59.460 回答