给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。

输入格式:

输入第1行给出2个整数N(0)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。

输出格式:

按照"{ v​1​​ v​2​​ ... v​k​​ }"的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。

输入样例:

8 6
0 7
0 1
2 0
4 1
2 4
3 5

输出样例:

{ 0 1 4 2 7 }
{ 3 5 }
{ 6 }
{ 0 1 2 7 4 }
{ 3 5 }
{ 6 }
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 15;
const int INF = 1000000000;int n;
bool vis[maxn];
int G[maxn][maxn];
queue<int> q;void DFS(int v);
void BFS(int v);int main(){int m;scanf("%d%d",&n,&m);fill(G[0],G[0]+maxn*maxn,INF);for(int i = 0; i < m; i++){int u,v;scanf("%d%d",&u,&v);G[u][v] = G[v][u] = 1;}memset(vis,0,sizeof(vis));for(int i = 0; i < n; i++){if(!vis[i]){printf("{");DFS(i);printf(" }\n");}}memset(vis,0,sizeof(vis));for(int i = 0; i < n; i++){if(!vis[i]){printf("{");BFS(i);printf(" }\n");}}return 0;
}void DFS(int v){vis[v] = true;printf(" %d",v);for(int i = 0; i < n; i++){if(!vis[i] && G[v][i] == 1){DFS(i);}}
}void BFS(int v){vis[v] = true;q.push(v);printf(" %d",v);while(!q.empty()){int now = q.front();q.pop();for(int i = 0; i < n; i++){if(!vis[i] && G[now][i] == 1){vis[i] = true;printf(" %d",i);q.push(i);}}}
}

转载于:https://www.cnblogs.com/wanghao-boke/p/10764058.html

06-图1 列出连通集 (25 分)相关推荐

  1. 7-201 列出连通集 (25 分)

    7-201 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的 ...

  2. 7-2 列出连通集 (25分)

    文章目录 7-2 列出连通集 (25分) 输入格式: 输出格式: 输入样例: 输出样例: 题解 伪代码 代码 7-2 列出连通集 (25分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别 ...

  3. 7-2 列出连通集 (25 分)

    给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...

  4. 7-6 列出连通集 (25 分)(详解)

    列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...

  5. 列出连通集 (25 分)【DFS与BFS模板】

    立志用最少的代码做最高效的表达 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访 ...

  6. 7-6 列出连通集 (25 分)(C语言实现)

    给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...

  7. 7-5 列出连通集 (6 分)

    7-5 列出连通集 (6 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访 ...

  8. 算法 图1 列出连通集

    全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案汇总 题目:给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行 ...

  9. 06-图1 列出连通集 —— 非联通图的DFS与BFS

    06-图1 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的 ...

  10. 列出连通集(java)

    7-6 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序 ...

最新文章

  1. for vue 一行2列_awk 处理文本:行转列,列转行
  2. fguillot json rpc_使用Hyperf框架搭建jsonrpc服务
  3. Nginx安装成Windows服务
  4. poi 启用保护后取消_雪佛龙取消商标许可,澳洲加德士更名Ampol后启用新LOGO
  5. Windows Server 2016 配置指南 全系列
  6. 时序分析:串匹配—Brute-Force算法
  7. java web 手机验证_Java 手机Web开发 身份验证
  8. 为什么你工作努力却没有起色?
  9. quartz java spring_从零开始学 Java - Spring 使用 Quartz 任务调度定时器
  10. php遍历原理,PHP数组遍历与实现原理
  11. Ubuntu各个版本国内源
  12. i7 8750h支持linux,开启游戏本六核时代!酷睿i7-8750H处理器性能实测
  13. 2009年河北省普通高校专接本考试专业课考试用参考教材目录
  14. 常用网络端口用处归纳
  15. 大数据中心建设一哄而上 人才技术制约产业发展
  16. Zbar源码解析——zbar_oho_条形码阅读器|2021SC@SDUSC
  17. 如果忘记Mac密码该怎么办
  18. proe常用c语言语句,Proe如何使用if条件语句?
  19. 睡眠助手APP开发解决方案
  20. (二维树状数组)E - Stars

热门文章

  1. 一起动手打造个人娱乐级linux
  2. xamarin UWP中MessageDialog与ContentDialog的区别
  3. 【转】用BibTeX 写 Reference
  4. C语言一个小小的问题引起的对指针的探究。。。
  5. java mysql_Java与mysql的连接
  6. init tarray 太大_[NOIP 2001提高组T4]Car的旅行路线
  7. matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc
  8. new失败跟踪函数_WinDbg预览时间线:调试器中的时间线可以允许用户记录跟踪
  9. 系统英伟达gpu驱动卸载_绕过CPU,英伟达让GPU直连存储设备
  10. Swing 学习小记