//儲存入度為0的節點
int next[
3]=;
int maze[50]
[50][
50];//存放座標資訊
bool mark[50]
[50][
50];//標記陣列,一旦處理完就標記其位置為true
intbfs
(int a,
int b,
int c)
}return-1
;//所有狀態都找完都未找到出口座標,返回-1
}int
main()
while
(!q.
empty()
) q.
pop();
//清空佇列
mark[0]
[0][
0]=true
;//標記出發節點
node tmp;
tmp.x=tmp.y=tmp.z=tmp.t=0;
q.push
(tmp)
;//出發節點進棧
int rec=
bfs(a,b,c);if
(rec<=t&&rec!=-1
)printf
("%d\n\n"
,rec)
;else
printf
("-1\n\n");
}return0;
}1
3 3 4 20
0 1 1 1
0 0 1 1
0 1 1 1
1 1 1 1
1 0 0 1
0 1 1 1
0 0 0 0
0 1 1 0
0 1 1 0
搜尋 廣度優先搜尋
廣度優先搜尋一層一層地進行遍歷,每層遍歷都是以上一層遍歷的結果作為起點,遍歷乙個距離能訪問到的所有節點。需要注意的是,遍歷過的節點不能再次被遍歷。class solution,int shortestpathbinarymatrix vectorint grid length return 1 cl...
廣度優先搜尋
include include include include using namespace std struct node 圖頂點結構定義 typedef struct node graph 圖形的結構新型態 struct node head 9 圖形頂點陣列 int visited 9 遍歷標...
廣度優先搜尋
廣度優先搜尋詳解 1.也稱寬度優先搜尋,顧名思義,就是將一棵樹一層一層往下搜。演算法首先搜尋和s距離為k的所有頂點,然後再去搜尋和s距離為k l的其他頂點。bfs是一種完備策略,即只要問題有解,它就一定可以找到解。並且,廣度優先搜尋找到的解,還一定是路徑最短的解。但是它盲目性較大,尤其是當目標節點距...