我一直试图弄清楚如何实现Floyd的算法几天,以找到网格结构中的最短路径,如下所述。谁能指出我正确的方向,我将如何实现这样的事情?感谢。
输入:
输出:
限制:
我需要帮助生成121x121阵列的条件。
这是我到目前为止所拥有的。
for(i=1;i<=n;i++) {
for(j=1;j<=n;j++) {
if( edge exists from i to j ) W[i][j] = 1;
// distance=1 if nodes are adjacent
else if ( edge does not exist from i to j ) W[i][j] = inf;
// distance=inf. if nodes do not meet
else if ( i = j ) W[i][j] = 0; // distance=0 if i=j
}
}
答案 0 :(得分:2)
http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm 只需使用这个伪代码来实现算法(它不应该与实际的C ++代码差别很大(这是一个相当简单的算法).Wiki链接还提供了最短路径重建的算法。 你会考虑实施一个简单的呼吸优先搜索,因为你正在处理一个网格。 哈哈这是我在这个论坛上的第一篇文章:)