06-图1 列出连通集 (25 分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。
输入格式:
输入第1行给出2个整数N(0)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。
输出格式:
按照"{ v1 v2 ... vk }"的格式,每行输出一个连通集。先输出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 分)相关推荐
- 7-201 列出连通集 (25 分)
7-201 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的 ...
- 7-2 列出连通集 (25分)
文章目录 7-2 列出连通集 (25分) 输入格式: 输出格式: 输入样例: 输出样例: 题解 伪代码 代码 7-2 列出连通集 (25分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别 ...
- 7-2 列出连通集 (25 分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...
- 7-6 列出连通集 (25 分)(详解)
列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...
- 列出连通集 (25 分)【DFS与BFS模板】
立志用最少的代码做最高效的表达 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访 ...
- 7-6 列出连通集 (25 分)(C语言实现)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...
- 7-5 列出连通集 (6 分)
7-5 列出连通集 (6 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访 ...
- 算法 图1 列出连通集
全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案汇总 题目:给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行 ...
- 06-图1 列出连通集 —— 非联通图的DFS与BFS
06-图1 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的 ...
- 列出连通集(java)
7-6 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序 ...
最新文章
- for vue 一行2列_awk 处理文本:行转列,列转行
- fguillot json rpc_使用Hyperf框架搭建jsonrpc服务
- Nginx安装成Windows服务
- poi 启用保护后取消_雪佛龙取消商标许可,澳洲加德士更名Ampol后启用新LOGO
- Windows Server 2016 配置指南 全系列
- 时序分析:串匹配—Brute-Force算法
- java web 手机验证_Java 手机Web开发 身份验证
- 为什么你工作努力却没有起色?
- quartz java spring_从零开始学 Java - Spring 使用 Quartz 任务调度定时器
- php遍历原理,PHP数组遍历与实现原理
- Ubuntu各个版本国内源
- i7 8750h支持linux,开启游戏本六核时代!酷睿i7-8750H处理器性能实测
- 2009年河北省普通高校专接本考试专业课考试用参考教材目录
- 常用网络端口用处归纳
- 大数据中心建设一哄而上 人才技术制约产业发展
- Zbar源码解析——zbar_oho_条形码阅读器|2021SC@SDUSC
- 如果忘记Mac密码该怎么办
- proe常用c语言语句,Proe如何使用if条件语句?
- 睡眠助手APP开发解决方案
- (二维树状数组)E - Stars
热门文章
- 一起动手打造个人娱乐级linux
- xamarin UWP中MessageDialog与ContentDialog的区别
- 【转】用BibTeX 写 Reference
- C语言一个小小的问题引起的对指针的探究。。。
- java mysql_Java与mysql的连接
- init tarray 太大_[NOIP 2001提高组T4]Car的旅行路线
- matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc
- new失败跟踪函数_WinDbg预览时间线:调试器中的时间线可以允许用户记录跟踪
- 系统英伟达gpu驱动卸载_绕过CPU,英伟达让GPU直连存储设备
- Swing 学习小记