我必须找到火车站之间的最短距离 -
给出的是代表火车站的节点,边缘被认为是距离。我必须计算最小距离。我正在使用的逻辑中存在一些错误。
这是我试过的代码。但我没有得到两点之间的最短路径。 实现它 :console:var e = new calc_route(“1”,“3”,步骤)解决方案应该给我1到3之间的最小距离.. ...例如,可能存在从1到2的路径,其具有wgt 5和2到3,其中wgt 4总数为9.并且可能存在1到3之间的直接路径,其中wgt 10.然后第一路径应该是被选中
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);
}
}
}
}
答案 0 :(得分:3)
你应该看看Dijkstra的算法。 http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
在javascript中查找它的实现,并重用已经测试过的代码。
答案 1 :(得分:0)
似乎你需要实现的是A *算法...... http://en.wikipedia.org/wiki/A*_search_algorithm 快速谷歌将为您提供许多已经实施的结果。