-2

私は駅間の最短距離を見つけなければなりません-

与えられたのは鉄道駅を表すノードであり、エッジは距離と見なされます。最小距離を計算する必要があります。使用しているロジックにエラーがあります。

これが私が試したコードです。しかし、私は2点間の最短経路を取得していません。 それを実装するには:console:var e = new calc_route( "1"、 "3"、steps)ソリューションは1と3の間の最小距離を与えるはずです.....たとえば、1から2までのパスがあるかもしれませんこれは、wgt 5と2から3で、合計wgt 4は9です。また、wgt 10で1から3の間に直接パスが存在する可能性があります。次に、最初のパスを選択する必要があります。

steps=[
    {from:1, to:8},
    {from:1, to:2},
    {from:2, to:7},
    {from:7, to:9},
    {from:8, to:9}
];

function calc_route(start, end, data)
{           
    console.log(start+", "+end);
    console.log(data);              
    for(var i=0; i<data.length; i++)
    {

        if(data[i].to == end && data[i].from == start)
        {
            console.log("Return");                  
            console.log(data[i]);
            return data[i];
        }
        else
        {
            if(data[i].from == start)
            {                       
                calcfor =   data.splice(i, 1);                                      
                calc_route(calcfor[0].topoint, end, data);
            }
        }
    }
}
4

2 に答える 2

3

ダイクストラのアルゴリズムを見てください。http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

javascriptでその実装を見つけ、すでにテストされたコードを再利用します。

于 2012-06-29T15:04:44.177 に答える
0

実装する必要があるのはA*アルゴリズムのようです... http://en.wikipedia.org/wiki/A*_search_algorithm クイックグーグルは、すでに実装されている多くの結果を提供します。

于 2012-06-29T15:04:45.740 に答える