DFS 迷宮問題(C )

2021-10-01 15:35:32 字數 986 閱讀 8455

定義乙個二維陣列:

int maze[5][5] = ;

它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。

乙個5 × 5的二維陣列,表示乙個迷宮。資料保證有唯一解。

左上角到右下角的最短路徑,格式如樣例所示。

0 1 0 0 0

0 1 0 1 0

0 0 0 0 0

0 1 1 1 0

0 0 0 1 0

(0, 0)

(1, 0)

(2, 0)

(2, 1)

(2, 2)

(2, 3)

(2, 4)

(3, 4)

(4, 4)

這題只需要定義兩個陣列,乙個存當前路徑,另乙個存最短路徑就行了。

下面是**:

#include

using

namespace std;

int x[26]

,y[26

],a[5]

[5],xx[26]

,yy[26]

,min=int_max;

int xx[5]

=;int yy[5]

=;void

print

(int n)

}voidfz(

int n)

}void

dfs(

int x,

int y,

int sum)

for(

int i=

1;i<=

4;i++)}

}int

main()

}dfs(0

,0,1

);print

(min)

;return0;

}

迷宮問題dfs

迷宮問題 棧作為深度優先遍歷 dfs 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋 可以最快的找到解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct sttype 迷宮問題常用...

迷宮問題dfs

j.迷宮問題 migong problem 1737 discussion description 設有乙個n n 2 n 10 方格的迷宮,入口和出口分別在左上角和右上角。迷宮格仔中分別放0和1,0表示可通,1表示不能,入口和出口處肯定是0。迷宮走的規則如下所示 即從某點開始,有八個方向可走,前進...

迷宮問題 DFS

給定乙個n m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。思路 經典搜尋題,這篇我用深度優先搜尋來解題,首先我們定義兩個陣列,乙個用來...