几天来,我一直试图弄清楚如何实现弗洛伊德算法,以找到网格结构中的最短路径,如下所述。谁能指出我将如何实现这样的事情的正确方向?谢谢。
输入:
- 开始/结束坐标
- 用户输入必须介于 0 到 10(含)之间
- 障碍物数量
- 左上角和右下角的障碍物坐标
输出:
- 显示通过的所有坐标的路径
- 距离作为整数
限制:
- 障碍物不能重叠
- 不能在矩形障碍物内设置开始和结束
- 路径可以包括沿着矩形的边缘行进,但从不穿过它们
- 路径只能水平和垂直,而不是对角线
- 两个相邻顶点之间的距离为1
我需要帮助生成 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
}
}