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

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

输出格式:
按照"{ v1 v​2​​ … 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 <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
int ch[11][11]; //连接矩阵
int n;          //顶点
bool flag[11];
void DFS(int x)
{printf(" %d",x);flag[x] = true;for (int i=0;i<n;i++){if (flag[i]==false&&ch[x][i]==1){DFS(i);}}
}
void BFS(int x){flag[x] = true;int front = 0,end = 1;int cun[1001];memset(cun,0,sizeof(cun));cun[0] = x;while (front!=end){int data = cun[front++];printf(" %d",data);for (int i=0;i<n;i++){if (ch[data][i]==1&&flag[i]==false){cun[end++] = i;flag[i] =true;}}}
}
int main()
{int e; //边数;scanf("%d %d", &n, &e);while (e--){int a, b;scanf("%d %d", &a, &b);ch[a][b] = 1;ch[b][a] = 1;}memset(flag, false, sizeof(flag));for (int i = 0; i < n; i++){if (flag[i] == false){printf("{");DFS(i);printf(" }\n");}}memset(flag, false, sizeof(flag));for (int i=0;i<n;i++){if (flag[i]==false){printf("{");BFS(i);printf(" }\n");}}
}

7-6 列出连通集 (25 分)(C语言实现)相关推荐

  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-5 列出连通集 (6 分)

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

  7. 11-散列1 电话聊天狂人 (25 分) (C语言)

    浙大版<C语言程序设计实验与习题指导(第3版)>题目集 11-散列1 电话聊天狂人 (25 分) 二.题解 c代码 11-散列1 电话聊天狂人 (25 分) 给定大量手机用户通话记录,找出 ...

  8. 银行业务队列简单模拟 (25 分)c语言c++

    7-2 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银 ...

  9. 7-4 哈利·波特的考试 (25 分)(C语言实现)

    7-4 哈利·波特的考试 (25 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向 ...

最新文章

  1. 微生物组领域最高质量的资源全在这
  2. 如何用纯 CSS 创作一个单元素抛盒子的 loader
  3. 怎样使用SetTimer MFC 够具体
  4. 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
  5. 转】MYSQL性能调优与架构设计之select count(*)的思考
  6. makefile如何减小可执行文件的大小(没有用到的函数不参与链接)
  7. base64是哪个jar包的_涨知识 | 用maven轻松管理jar包
  8. Virtual Studio 2013 每次加载程序(dll)缓慢的问题
  9. 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
  10. grpc-go客户端源码分析
  11. Linux内核CPU负载均衡机制
  12. smart210 资源
  13. Java开发手册、帮助文档
  14. 信号与系统基础简单知识概括
  15. word文档怎么压缩,word压缩大小
  16. 旋转矩阵是正交矩阵与伴随性质的证明
  17. LayaBox微信小游戏截图功能 利用微信API实现完美截图
  18. Android游戏开发教程汇总
  19. 详解Unity中的粒子系统Particle System (十)
  20. 高校实验室预约系统功能简介及解决方案

热门文章

  1. 关于码云开源项目SpringBootAdmin多数据源配置
  2. SecureCRT Application 已停止工作
  3. python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)
  4. 如何理解Java中的自动拆箱和自动装箱?
  5. ConcurrentHashMap底层原理?
  6. Java异常分类及处理
  7. linux php cgi.sock,nginx中unix:/tmp/php-cgi.sock错误解决解决
  8. android中拖动文字实现功能,Android:图片中叠加文字,支持拖动改变位置
  9. java数组排序源码_Java 数组工具类排序,最大值最小值等
  10. 顺序队列,循环队列,链队列