dijkstra'实施中的错误;javascript中的s算法

dijkstra'实施中的错误;javascript中的s算法,javascript,algorithm,dijkstra,Javascript,Algorithm,Dijkstra,我根据wiki中给出的伪代码编写了此代码。但仍有一些错误。请帮助我的编码,并告诉我如何才能改善它,我正在尝试从几个小时! 我已将我知道的那一行标记为错误。我不知道我错在哪里 var graph = [{ from: [1, 2, 3, 4], to: [3, 3, 5, 6] }]; var shortestpath = function (graph, source) { for (i in graph) {

我根据wiki中给出的伪代码编写了此代码。但仍有一些错误。请帮助我的编码,并告诉我如何才能改善它,我正在尝试从几个小时! 我已将我知道的那一行标记为错误。我不知道我错在哪里

  var graph = [{
        from: [1, 2, 3, 4],
        to: [3, 3, 5, 6]
    }];
    var shortestpath = function (graph, source) {
            for (i in graph) {
                dist[i] = infinty;
                prev[i] = undefined;
            }
            dist[source] = 0;
            var q = [];
            q.push(graph.value);
            while (q != 0) {
               var min_distance = infinity;
var u = null;

for (var i in dist) {
   if (dist[i] < min_distance) {
      u = i;
      min_distance = dist[u];
   }
}
                if (dist[u] = infinity) {
                    break;
                }
                q.pop(u);
                for (v in u) {
                    var alt = dist[u] + dist_between(u, v);
                    if (alt < dist[v]) {
                        dist[v] = alt;
                        previous[v] = u;
                        q.sort(v);
                    }
                }
            }
            return dist;
        }
    }
var图=[{
发件人:[1,2,3,4],
致:[3,3,5,6]
}];
var shortestpath=函数(图形,源){
对于(图中的i){
dist[i]=infinty;
prev[i]=未定义;
}
距离[来源]=0;
var q=[];
q、 push(图形值);
while(q!=0){
var min_距离=无穷大;
var u=null;
用于(var i在距离内){
if(距离[i]<最小距离){
u=i;
最小距离=距离[u];
}
}
if(dist[u]=无穷大){
打破
}
q、 流行音乐(u);
对于(u中的v){
var alt=距离[u]+距离(u,v)之间的距离;
如果(alt
根据,
u
不应该是一个列表,而是一个简单的整数,它包含
Q
中距离较小的顶点的索引

如果您想要具有最小距离的顶点,则必须迭代顶点数组,跟踪到目前为止找到的最小距离,并将具有此抖动的顶点指定给
u

var min_distance = infinity;
var u = null;

for (var i in dist) {
   if (dist[i] < min_distance) {
      u = i;
      min_distance = dist[u];
   }
}
var min_距离=无穷大;
var u=null;
用于(var i在距离内){
if(距离[i]<最小距离){
u=i;
最小距离=距离[u];
}
}
根据,
u
不应该是一个列表,而是一个简单的整数,它包含
Q
中距离较小的顶点的索引

如果您想要具有最小距离的顶点,则必须迭代顶点数组,跟踪到目前为止找到的最小距离,并将具有此抖动的顶点指定给
u

var min_distance = infinity;
var u = null;

for (var i in dist) {
   if (dist[i] < min_distance) {
      u = i;
      min_distance = dist[u];
   }
}
var min_距离=无穷大;
var u=null;
用于(var i在距离内){
if(距离[i]<最小距离){
u=i;
最小距离=距离[u];
}
}

请检查我是否做了正确的更改。如果没有请编辑它。请检查我是否做了正确的更改。如果没有请编辑它。