/*bfs一般用於求迷宮起點到終點的最短距離,原因是迷宮各個方向權值相等*/
#include #include #include #include #define n 50
using namespace std;
struct point ;
point start;
point p;
queueq;
int m, n;
int map[n][n] = , vis[n][n] = ;
int dx[4] = ;//4個方向移動
int dy[4] = ;
int bfs()
} q.pop();//遍歷完後記得把佇列的首部元素清除 }}
int main()
} memset(vis, 0, sizeof(vis));//對標記陣列初始化
scanf("%d%d%d%d", &start.x, &start.y, &p.x, &p.y);//輸入起點和終點
start.step = 0;//初始化起點的步數
vis[start.x][start.y] = 1;//標記起點為已走過
ans = bfs();//呼叫bfs函式
printf("%d\n", ans);
} return 0;
}
解救人質 BFS模板(迷宮問題)
和上個dfs的問題一樣,這次用bfs的思想,bfs沒有像dfs那樣專門有個step累加,是靠佇列思想實現,更像一群路徑競速,最快的到達後,就break輸出了 include struct node int main int book 51 51 定義乙個用於表示走的方向的陣列 int next 4 ...
迷宮問題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...