BFS主要功能
計算unweighted graph上的single source shortest path
時間複雜度
(1) 用adjacency-matrix : O(n^2)
(2) 用adjacency-list : O(n+m)
簡單範例
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
 | int color[N], d[N], pi[N], adj[N][N];void BFS(int s){    memset(color, 0, sizeof(color));    color[s] = 1, d[s] = 0, pi[s] = -1;    deque<int> q;    q.push_back(s);    while (!q.empty()) {        int u = q.front();        q.pop_front();        for (int v=1; v<=N; v++){            if (!color[v] && adj[u][v]){                color[v] = 1, d[v] = d[u]+1, pi[v] = u;                q.push_back(u);            }        }    }} |