題解 bfs之迷宮問題(入門)

2021-09-24 01:48:18 字數 734 閱讀 2159

小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。

小明只能向上下左右四個方向移動。

輸入輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。

每組輸入的第一行是兩個整數n和m(1<=n,m<=100)。

接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。

字元的含義如下:

『s』:起點

『e』:終點

『-』:空地,可以通過

『#』:障礙,無法通過

輸入資料保證有且僅有乙個起點和終點。

輸出對於每組輸入,輸出從起點到終點的最短路程,如果不存在從起點到終點的路,則輸出-1

因題目本身性質,就不記錄是否走過了,直接弄『#』

#include#includeusing namespace std;

char g[105][105];

int step[4][2]=,,,};

struct nodenod;

int main()

if(g[i][j]=='e')

}nod.x=sx;nod.y=sy;nod.t=0;

queueque;

g[sx][sy]='#';

que.push(nod);

while(!que.empty())}}

if(tag) cout<<-1<}

return 0;

}

BFS之迷宮問題

迷宮問題一直是bfs的經典問題,之前也做了不少,但是一直都是那種求走的最短次數,今天遇到一題需要把最短路徑列印出來。所以就卡住了,看了不少別人的部落格,千篇一律地使用模擬佇列,可是為什麼不直接使用queue呢?題目描述 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0...

迷宮問題bfs

迷宮問題 採用佇列的廣度優先遍歷 bfs 思想是從乙個頂點v0開始,輻射狀地優先遍歷其周圍較廣的區域 找到的解為最優解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct qutype...

迷宮問題BFS

the code 資料結構迷宮.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include define n 4 定義迷宮為4 4 using namespace std struct pot 為記錄路徑的rec準備,座標 x...