const int maxn=1000;
const int inf=1e9;
//邻接矩阵版
int n,G[maxn][maxn];
bool inq[maxn]={false};
void bfs(int u){
queue<int> q;
q.push(u);
inq[u]=true;
while(!q.empty()){
int u=q.front();q.pop();
for(int v=0;v<n;v++)
if(!inq[v]&&G[u][v]!=inf){
q.push(v);
inq[v]=true;
}
}
}
void bfstrave(){
for(int u=0;u<n;u++)
if(!inq[u]) bfs(u);
}
//邻接表版
vector<int> Adj[maxn];
int n;
bool inq[maxn]={false};
void bfs(int u){
queue<int> q;
q.push(u);
inq[u]=true;
while(!q.empty()){
int u=q.front();q.pop();
for(int i=0;i<Adj[u].size();i++){
int v=Adj[u][i];
if(!inq[v]){
q.push(v);
inq[v]=true;
}
}
}
}
void bfstrave(){
for(int u=0;u<n;u++) if(!inq[u]) bfs(u);
}
数据结构——图的广度优先搜索模板
最新推荐文章于 2024-04-17 13:52:18 发布