图论1-问题 C: 算法7-6:图的遍历——广度优先搜索
题目描述
输入
输出
样例输入 复制
4 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
样例输出 复制
0 3 1 2
提示
题解
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 105;
int mp[N][N];
int n;
bool vis[N];
void dfs(int u){
cout << u << ' ';
vis[u] = true;
for(int i = 0;i < n;i ++){
if(mp[u][i] == 1 && !vis[i]){
dfs(i);
}
}
}
void bfs(int u){
queue<int>q;
q.push(u);
while(!q.empty()){
int cu = q.front();q.pop();
cout << cu << ' ';
vis[cu] = true;
for(int i = 0;i < n;i ++){
if(mp[cu][i] == 1 && !vis[i]){
vis[i] = true;
q.push(i);
}
}
}
}
int main(){
ios::sync_with_stdio(0),
cin.tie(0), cout.tie(0);
cin >> n;
for(int i = 0;i < n;i ++)
for(int j = 0;j < n;j ++)
cin >> mp[i][j];
bfs(0);
return 0;
}
原文地址:https://blog.csdn.net/nick_912912/article/details/145180931
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!