小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。
小明只能向上下左右四個方向移動。
輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。
每組輸入的第一行是兩個整數n和m(1<=n,m<=100)。
接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。
字元的含義如下:
『s』:起點
『e』:終點
『-』:空地,可以通過
『#』:障礙,無法通過
輸入資料保證有且僅有乙個起點和終點。
對於每組輸入,輸出從起點到終點的最短路程,如果不存在從起點到終點的路,則輸出-1。
15 5
s-###
-----
##---
e#---
---##9
/*15 5
s-###
-----
##---
e#---
---##
*/#include#includeusing namespace std;
struct note
;struct note que[2051];
char a[51][51];
int i,j,k,n,m,startx,starty,p,q,ty,tx,flag;
int book[51][51];
int next[4][2]=,,,
};void bfs()
//如果到了目的地,停止擴充套件,任務結束,退出迴圈
if(tx==p&&ty==q)
}if(flag==1)
break;
head++;//這個地方千萬不能忘記,當乙個點擴充套件結束後,head++才能使得後面的點再進行擴充套件
}//列印佇列中末尾最後乙個點的步數
//注意tail是指向隊尾的下乙個位置,所以需要-1
cout<>n>>m;
for(i=1;i<=n;i++)
if(a[i][j]=='e')}}
bfs();
return 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...
迷宮問題bfs
小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。小明只能向上下左右四個方向移動。輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。每組輸入的第一行是兩個整數n和m 1 n,m 100 接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。字元的含義如下 s 起點 ...