C 回溯法走迷宮

2022-06-29 09:21:09 字數 1260 閱讀 8196

定義乙個迷宮,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的路徑。求解思路 每個路口最多有三個搜尋分支。把演算法設計為如下的搜尋過程 把整個搜尋分解為向左 向前和向右三個方向上子問題的搜尋。當搜尋到某個...