#includeusing namespace std;
int n;int maze[101][101];
bool vis[101][101];
struct unit//棧中的單元,記錄x,y座標
;struct list
bool back()//判斷是否可入棧
void push(unit u)
void pop()
unit get()//返回棧頂元素
bool empty()//判斷是否為空
void clear()//清空棧
bool judge()
}stack;
void main()
{// int n;
while(cin>>n)
{ stack.clear();
bool flag = false;
memset(maze,1,sizeof(maze));
memset(vis,0,sizeof(vis));
for(int i=1;i!=n+1;i++)
for(int j=1;j!=n+1;j++)
cin>>maze[i][j];
unit u,u1;u.x =1;u.y =1;stack.push(u);//起點入棧
vis[1][1] = true;
while(!stack.empty())
{ u = stack.get();
if(stack.judge())//判斷是否找到目標
{flag = true;
cout<<"find it"《輸入的資料:
4 //矩陣的大小
0 1 1 0
0 0 1 1
1 0 1 1
0 0 0 0
迷宮深度優先搜尋 找出一條可行路徑
請寫乙個程式,先輸入迷宮的維度m和n,然後輸入這個m n的迷宮,迷宮位置上的數值為0代表該位置可以通過,為1代表該位置有障礙不能通過,用深度優先搜尋演算法搜出一條從迷宮左上角到右下角的路徑。規定搜尋順序為上 下 左 右。如 迷宮為2 2的 搜尋從左上角開始,到達右下角的路徑應該是 0,0 1,0 1...
利用棧求一條迷宮路徑(不一定是最優路徑)
define mazerow 10 迷宮的行數 define mazecol 10 迷宮的列數 static char maze mazerow mazecol 定義乙個迷宮 typedef structpos 點的座標 typedef struct datadata 每個點的資料 typedef ...
資料結構 多出口迷宮找出一條最短路徑
前面我們實現了基礎版本的迷宮求解,只有一條路徑。現在如果有多個出口,我們該如何去找到一條最短的路徑。我們先來思考一下我們是如何在乙個陣列裡找最小值的?有下面乙個陣列 我們可以先把第乙個數設為最小值,然後遍歷陣列,拿它和後面的元素進行比較,把兩個數中較小的賦給min,直到遍歷完整個陣列,min中就是陣...