bfs直接適合用在處理資料較少的的題目,如果資料量太大bfs處理不來。
bfs在求解最短路徑或者最短步數上有很多的應用。
應用最多的是在走迷宮上。
現在這題的主要難點是在記錄上一步的節點,不過這題的資料量比較小,
所以不用佇列,用一維陣列就好了。結構體內定義乙個c變數來記錄上一點。
struct euq[6*
6];
也不用考慮,在轉彎節點中的c會不會記錄比較遠的路徑的上一點,因為路徑短的比路徑長優先遍歷了,
此時的轉彎節點已經被標記了,所以不用擔心被路徑長的節點再次訪問。
下面我們看**。
#include
#include
#include
#include
using
namespace std;
int map[5]
[5],vis[5]
[5];
//vis記錄是否訪問
int d[4]
[2]=
,,,}
;//上下左右方向
struct euq[6*
6];void
print
(int head)
//查詢輸出
printf
("(0, 0)\n");
}void
bfs(
)for
(int i=
0;i<
4;i++)}
} head++;}
}int
main()
}bfs()
;return0;
} ```
POJ3984 迷宮問題
題目 迷宮問題 time limit 1000ms memory limit 65536k total submissions 3183 accepted 1861 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎...
POJ 3984 迷宮問題
一道比較簡單的bfs題 include include include include define max 6 using namespace std int map max max px max max py max max int movex 4 movey 4 bool vis max ma...
POJ 3984 迷宮問題
迷宮問題 time limit 1000ms memory limit 65536k total submissions 7047 accepted 4123 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,...