c_cpp 图表-BFS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 图表-BFS相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
// #Graphs #BasicProblem
// https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/
// Given graph is a strongly connected directed graph
// (there is atleast 1 path from each vertex to another vertex)
// Testcase
// 1
// 5
// 4
// 0 1
// 0 2
// 1 3
// 2 4
// 0
// Ans: 0 1 2 3 4
void BFS(vector<vector<int>> AdjL,vector<bool> &visited, int start){
queue<int> Q;
Q.push(start);
visited[start]=true;
while(!Q.empty()){
cout<<Q.front()<<" ";
for(int i=0;i<AdjL[Q.front()].size();i++){
if(!visited[AdjL[Q.front()][i]]){
Q.push(AdjL[Q.front()][i]);
visited[AdjL[Q.front()][i]]=true;
}
}
Q.pop();
}
}
int main(){
// freopen("ip.txt","r",stdin);
int t;
cin>>t;
while(t--){
int v;
cin>>v;
vector< vector<int> > AdjL(v);
int e;
cin>>e;
int i=0;
while(i<e){
int a,b;
cin>>a>>b;
AdjL[a].push_back(b);
i++;
}
vector<bool> visited(v,false);
int start;
// cout<<"Enter starting vertex"<<endl;
cin>>start;
cout<<"BFS: ";
BFS(AdjL,visited,start);
cout<<endl;
return 0;
}
}
以上是关于c_cpp 图表-BFS的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp BFS
c_cpp bfs.cpp
c_cpp BFS(宽度优先搜索算法)-C ++
c_cpp [tree] [dfs] [bfs]二叉树的最小深度
c_cpp [bfs] [string]字梯。给定两个单词(开头和结尾)和一个字典,从星上找到最短变换序列的长度
c_cpp 图表-ConnectedComponents