自定義乙個迷宮,行、列值》8,它有乙個出口和乙個入口,先輸出迷宮圖形,然後找出一條從入口到出口的路徑(上下左右四個方向)。分別用棧和佇列求解問題。
這題我用 stl 寫了 bfs 和 dfs,ac**如下:
//2、走迷宮:自定義乙個迷宮,行、列值》8,它有乙個出口和乙個入口,先輸出迷宮圖形,然後找出一條從入口到出口的路徑(上下左右四個方向)。分別用棧和佇列求解問題。
//『#』代表障礙,'.'代表通路,'s'代表起點,'e'代表終點
#include
using
namespace std;
typedef
long
long ll;
const
int n=
505;
char g[n]
[n];
//存圖
int n,m;
//迷宮的大小
int vis1[n]
[n],vis2[n]
[n];
int step1[n]
[n],step2[n]
[n];
//存步數
mapint,
int>
,pair<
int,
int>>pre;
//儲存前驅結點
int mo[4]
[2]=
;int s1,s2,e1,e2;
//起點座標,終點座標
struct node
;void
print
(pair<
int,
int>a)
else
print
(pre[a]);
printf
("(%d,%d)\n"
,a.first,a.second);}
void
bfs())
;return;}
for(
int i=
0;i<
4;i++)]
=;q.
push
(b);}}
}}void
dfs())
;return;}
int flag=0;
for(
int i=
0;i<
4;i++)]
=;s.
push
(b);
flag=1;
break;}
}if(!flag) s.
pop();
}}intmain()
}bfs()
;dfs()
;}/*10 10
s#########
..........
#########.
..........
.#########
..........
#########.
..........
.#########
.........e
*/
資料結構之棧與佇列 走迷宮
time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 乙個由n m 個格仔組成的迷宮,起點是 1,1 終點是 n,m 每次可以向上下左右四個方向任意走一步,並且有些格仔是不能走動,...
資料結構 queue佇列應用(走迷宮)
思路 從乙個節點開始,尋找所有下乙個能繼續走的點,根據下乙個的點繼續尋找所有能走的點,直到該點等於出口。方法 建立乙個空佇列,將起點位置進隊。在佇列不為空的時候迴圈 出隊一次。如果當前位置為出口,則結束演算法 否則找出當前方塊的4個相鄰方塊中可走的方塊,加入佇列。和stack的優勢 第乙個出隊的終點...
資料結構實驗之棧與佇列十 走迷宮
time limit 1000ms memory limit 65536kb submit statistic problem description 乙個由n m 個格仔組成的迷宮,起點是 1,1 終點是 n,m 每次可以向上下左右四個方向任意走一步,並且有些格仔是不能走動,求從起點到終點經過每個...