STL棧求解迷宮問題

2021-08-17 04:47:01 字數 712 閱讀 4492

用棧求解迷宮問題時,運用其先進後出的性質。

思路:1.先將入口點入棧

2.while迴圈,當棧為空,或者棧的第乙個點為出口點時退出

3.top獲得棧首使其為當前位置,分別判斷能否進入四個方向點(未走過),若可以則將新位置壓棧,並記錄已走過;否則當前位置出棧,重複(3)過程

4.while迴圈,當棧不為空,輸出棧中位置

#include #include #include #include #include #include #include #include #include #includeusing namespace std;

typedef struct wz

wz;stackst;

int mg2[20][20]=;//記錄該路徑是否走過,防止進入死迴圈

int mg[100][100]=

, ,,,

,,,,

,};int main()

else if(mg[i+1][j]==1&&mg2[i+1][j]==0)

else if(mg[i][j-1]==1&&mg2[i][j-1]==0)

else if(mg[i-1][j]==1&&mg2[i-1][j]==0)

else st.pop();

}while(!(st.empty()))

return 0;

}

棧求解迷宮問題

問題 假設下圖1是某迷宮的地圖 0代表路徑,1代表牆壁 問此迷宮是否有條通路?求解思想 用棧來實現解決問題,主要步驟是 1 將迷宮的入口座標設為當前座標 2 將當前座標壓棧,將當前座標上的值設為2 0變為2 代表已走過的路 3 判斷當前座標的四周 上下左右 是否是可以通 為0則通 的,如果是通的,那...

棧 求解迷宮問題

問題 在迷宮中尋找一條路徑 演算法分析 將迷宮數值化,使用二維陣列來表示迷宮,牆單元用0,通道單元用1 如果能夠通過繼續前進,如果不能通過則退回到上乙個單元,因此用棧來儲存通過的路徑 用0,1,2,3來分別表示4個方向 include pch.h include include include in...

棧實現迷宮求解問題

總體感觸是 不要著急,一步一步來,問題很容易解決的。首先是要實現乙個迷宮的地圖。明確如何儲存地圖,用vector實現二維陣列,每個元素代表地圖的乙個格仔。需要儲存哪些資訊。一張地圖的某乙個方格需要標示 能否通過,是否走過了。94 struct point 位置資訊可用postype儲存。就是 str...