定義乙個迷宮,0表示通道,1表示牆 8,
10 ,
11 ,
12 ,
13 ,
14 ,
15 ,
16 ,
17 ,
18
19};
2021
struct try //
定義乙個棧,儲存路徑
22 path[maxsize]; //
定義棧
2728
int top = -1; //
初始化棧指標
2930
void findpath(int xb, int yb, int xe, int
ye);
3132
intmain()
3349
50void findpath(int xb, int yb, int xe, int ye) //
路徑為從(xb,yb)到(xe,ye)
5172 cout <
73return;74
}75 find = 0;76
while (d<4 && find == 0) //
找下乙個可走的點
7798
if (maze[i][j] == 0) find = 1; //
找到通路 99}
100if (find == 1) //
找到了下乙個可走方塊
101110
else
//沒有路可走,則退棧
111115
}116 cout << "
沒有可走路徑!
"<
117 }
回溯法 迷宮問題
1.首先我們需要自定義乙個迷宮 左上角為入口,右下角為出口,0為路,1為牆 用二維陣列儲存 2.我們在走迷宮之前,首先要確立乙個走的順序,即貪心準則,我們首先試探的方向應該是下,然後是右,上,左 為了確保每乙個格仔都有上下左右,我們需要給我們的迷宮加上一圈牆8 8,變成10 10 3.當我們在乙個格...
迷宮問題 回溯法
描述 給乙個20 20的迷宮 起點座標和終點座標,問從起點是否能到達終點。輸入 多個測例。輸入的第一行是乙個整數n,表示測例的個數。接下來是n個測例,每個測例佔21行,第一行四個整數x1,y1,x2,y2是起止點的位置 座標從零開始 x1,y1 是起點,x2,y2 是終點。下面20行每行20個字元,...
回溯法求解迷宮問題
題目 這是我在老師發的ppt上發現的一道題,如下 1表示起點 7表示終點,一共六個路口,每個路口可以通達最多左上右三個路口,不能走的方向用0表示,求從1到7的路徑。求解思路 每個路口最多有三個搜尋分支。把演算法設計為如下的搜尋過程 把整個搜尋分解為向左 向前和向右三個方向上子問題的搜尋。當搜尋到某個...