問題描述
定義乙個二維陣列:
定義乙個5*5的陣列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 maze[5][5];
struct point //定義點結構體
;int mini_k = 100000; //最小的k
point path[1000]; //暫存路徑的陣列
point shortest_path[1000]; //最短路徑的陣列
int flag[5][5]=; //標記是否訪問過,初始化為全0
bool inside(int x,int y)//判斷x,y是否在地圖內
void dfs(int x,int y,int k)//對點 (x,y) 進行dfs遍歷 當前是第k步
}flag[0][0]=1;
path[0]=;
dfs(0,0,1);
for(int i=0;i感悟:這道題在深度搜尋的基礎上,加了儲存了最短路徑的**。
迷宮最短路徑 深度優先搜尋 C python
從迷宮的起點到終點的最短路徑,用深度優先搜尋 c實現 include int n,m,p,q,min 99999999 int a 100 100 book 100 100 void dfs int x,int y,int step if x p y q for k 0 k 3 k return i...
練習 最短路徑 深度搜尋
乙個根據深度搜尋模型寫的最短路徑 參考如下 啊哈演算法 4.2 p81 最短路徑 public class shortpath 向右走 向下走 向左走 向上走 地圖是乙個5 5的矩陣 public static int x 5,y 5 定義終點 public static int ex 2,ey 2...
迷宮最短路徑
include include using namespace std const int max n 100,max m 100 const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pairp 輸入 char maze max ...