以下で説明するように、グリッド構造の最短経路を見つけるために、フロイドのアルゴリズムを実装する方法を数日間理解しようとしています。このようなものをどのように実装するかについて、誰かが私を正しい方向に向けることができますか? ありがとう。
入力:
- 開始/終了座標
- ユーザー入力は 0 から 10 の間である必要があります。
- 障害物の数
- 左上と右下の障害物座標
出力:
- 通過するすべての座標を示すパス
- int としての距離
制限:
- 障害物を重ねることはできません
- Start と End は、長方形の障害物内には設定できません
- パスには、長方形のエッジに沿った移動を含めることができますが、それらを通過することはできません
- パスは、斜めではなく、水平および垂直にのみ進むことができます
- 隣接する 2 つの頂点間の距離は 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
}
}