棧的應用 迷宮問題

2021-07-26 15:27:37 字數 869 閱讀 7660

#include#define maxsize 100

typedef struct

box;

typedef struct

sttype;

bool mgpath(int mg[10][10],int xi,int yi,int xe,int ye);//求解路徑為;(xi,yi)->(xe,ye)

int main()

, ,,,

,,,,

,};if(!mgpath(mg,1,1,8,8))

printf("該迷宮問題沒有解!");

return 0;

}bool mgpath(int mg[10][10],int xi,int yi,int xe,int ye)//求解路徑為;(xi,yi)->(xe,ye)

printf("\n");

}printf("迷宮路徑如下");

printf("\n");

for(k=0;k<= st.top;k++)

printf("\n");

return true;//找到一條路徑後返回true

}find=0;

while(di<4&&find==0)

if(mg[i][j]==0)//找到下乙個可走相鄰方塊

find=1;

}if(find==1)//找到下乙個可走方塊

else//沒有路徑可走退棧

}return false;//沒有路徑可走返回法false

}

執行結果:

迷宮問題 棧的應用

問題描述 以m n的矩陣表示迷宮圖,數字0代表通路,數字1代表障礙。對於走過的路徑,將數字0替換為數字2,便於檢視通路路徑。計算機解迷宮通常用的是 窮舉求解 方法,即從入口出發,順著某乙個方向進行探索,若能走通,則繼續往前進 否則沿著原路退回 回溯 換乙個方向繼續探索,直至出口位置,求得一條通路。注...

棧的應用 迷宮問題

這是幾個由二維陣列構成的迷宮,簡單的迷宮,多通路不帶環的迷宮,多通路帶環的迷宮!對於簡單迷宮我們需要判斷是否有出口!對於多通路不帶環的迷宮我們需要確定出口並且判斷最短路徑,對於通路間帶環的迷宮我們需要找出最短路徑!回溯演算法實際上乙個類似列舉的搜尋嘗試過程,主要是在搜尋嘗試過程中尋找問題的解,當發現...

棧的應用 迷宮

使用c 構建帶環迴路迷宮,並使用迭代法,遞迴法求出口 使用遞迴方法求迷宮的最短路徑 其實在列印最短路徑是使用佇列的話路徑就不是反著的了 pragma once includeusing namespace std include includetypedef struct pos pos class...