和上個dfs的問題一樣,這次用bfs的思想,bfs沒有像dfs那樣專門有個step累加,是靠佇列思想實現,更像一群路徑競速,最快的到達後,就break輸出了
#include struct node;int main()
; int book[51][51]=;
//定義乙個用於表示走的方向的陣列
int next[4][2]=,,,};
int head,tail;
int i,j,k,n,m,start_x,start_y,p,q,tx,ty,flag;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&a[i][j]);
scanf("%d %d %d %d",&start_x,&start_y,&p,&q);
//佇列初始化
head=1;
tail=1;
//往佇列插入迷宮入口座標
que[tail].x=start_x;
que[tail].y=start_y;
que[tail].f=0;
que[tail].s=0;
tail++;
book[start_x][start_y]=1;
flag=0;//用來標記是否到達目標點
解救人質(BFS)
不同於由遞迴生成的深度優先搜尋,廣度優先搜尋 又叫寬度優先搜尋 使用的是 一層一層 擴充套件的方法。問題1 解救人質 這裡使用乙個佇列來模擬搜尋的過程struct note struct note que 2501 地圖大小不超過50 50,因此佇列擴充套件不會超過2500個。int head,ta...
bfs迷宮問題模板
bfs一般用於求迷宮起點到終點的最短距離,原因是迷宮各個方向權值相等 include include include include define n 50 using namespace std struct point point start point p queueq int m,n int...
迷宮問題bfs
迷宮問題 採用佇列的廣度優先遍歷 bfs 思想是從乙個頂點v0開始,輻射狀地優先遍歷其周圍較廣的區域 找到的解為最優解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct qutype...