所以我正在编写Dijkstra算法的JavaScript实现。
我从Wikipedia page中读了很多,这帮助我将步骤转换为代码。我还阅读了this Stack Overflow question,这是我提问的一部分。
从A,唯一的路径是B,这给了我们
O => AB = 12;
O => C = 7
C现在是最低距离,是新的当前节点
O => CD = 8
由于D是目的地而且8< 12,选择路线CD。
如何将此决定实施到代码中?现在,我的脚本基于哪个节点选择哪个节点与当前节点相邻,是否需要通过这种新的评估来运行每个决策?
顺便说一下,here是我的(杂乱)代码。
答案 0 :(得分:2)
我的脚本基于哪个节点选择哪个节点与当前节点相邻
没有。您的connectedNodes
列表(按距离排序)应该是全局的,不仅适用于当前节点。
然后,对于第一个(最小距离)节点,将所有未访问的邻居添加到列表中,仍然按距离排序。标记当前访问的节点,继续下一个最小距离未访问节点。