【囤】图的深度优先遍历和广度优先遍历
//深度优先遍历(递归) void DFS(int u) { flag[u]=true; cout<<u<<" "; for(int i=0; i<n; i++) { if(flag[i]==false&&G[u][i]==1) { DFS(i); } } } //广度优先遍历 void BFS(int u) { //开始的点标明访问过 flag[u]=true; queue<int> q; q.push(u); //只要队列不空,就出队,出队之前检查这个点有没有连通别的点且那个点没被访问过 while(!q.empty()) { for(int i=0; i<n; i++) { if(G[q.front()][i]==1&&flag[i]==false) { q.push(i); flag[i]=true; } } cout<<q.front()<<" "; q.pop(); } }