**如下:
#include
#include
using
namespace
std;
#define max_row 10 //巨集定義行
#define max_col 10 //巨集定義列
struct seat
int _x;
int _y;
};class maze}}
void printmaze()//列印迷宮
cout
<< endl;
}cout
<< endl;
}~maze()
delete _map;
}bool ispass(seat s)//判斷當前位置是否為通路
bool passmaze(seat& s)//走迷宮
if (passmaze(left)) //朝左走
if (passmaze(right)) //朝右走
if (passmaze(down)) //朝下走
_map[s._x][s._y] = 3;//若上下左右均走不通,則回退回來並且將原來位置標記為3,不再走這裡
}return
false;
}private:
int **_map;
};int main()
, ,,,
,,,,
,};maze maze(maparr, max_row, max_col);
maze.printmaze();
seat s(9, 6); //迷宮入口
maze.passmaze(s);
maze.printmaze();
return
0;}
執行結果:
這樣,乙個簡易的遞迴實現迷宮就完成了。
資料結構16 遞迴 迷宮問題
再把左右兩行都設定為1 for int i 0 i 設定擋板 map 3 1 1 map 3 2 1 輸出地圖 代表二維陣列的行數 for int i 0 i system.out.println system.out.println 小球走過的路線 使用遞迴回溯給小球找路 setway map,1...
資料結構 遞迴思想及遞迴實現迷宮問題
遞迴 就是自己呼叫自己,然後一層層返回 乙個簡單的例子 列印問題 public static void main string args 列印問題 我們可以分析這個程式的執行過程 程式的方法在虛擬機器的棧空間執行 這就是遞迴的過程 有這樣乙個迷宮,從起點到終點,紅色是牆,黃色的是路,可以走,一次走一...
資料結構 迷宮
迷宮問題.cpp 定義控制台應用程式的入口點。include stdafx.h define m 4 define n 4 define maxsize 100 int mg m 2 n 2 struct stack maxsize path maxsize 定義棧和最短路徑的陣列 初始化 int ...