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

输入格式:

输入第1行给出2个整数N(0<N≤10)和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 }

结尾无空行

c++

#include<bits/stdc++.h>
using namespace std;queue<int>q;
int G[11][11];
int vis[11] = { 0 };
int n, m;void DFS(int r) {cout << " " << r;vis[r] = 1;for (int i = 0; i < n; i++) {if (vis[i] == 0 && G[r][i] == 1) {DFS(i);}}
}void BFS(int r) {if (vis[r] == 0)q.push(r);vis[r] = 1;for (int i = 0; i < n; i++) {if (vis[i] == 0 && G[r][i] == 1) {q.push(i);vis[i] = 1;}}while (!q.empty()) {int l = q.front();cout << " " << l;q.pop();BFS(l);}
}int main()
{int a, b;cin >> n >> m;for (int i = 0; i < m; i++) {cin >> a >> b;G[a][b] = G[b][a] = 1;}for (int i = 0; i < n; i++) {if (vis[i] == 0) {cout << "{";DFS(i);cout << " }" << endl;}}memset(vis, 0, sizeof(vis));for (int i = 0; i < n; i++) {if (vis[i] == 0) {cout << "{";BFS(i);cout << " }" << endl;}}return 0;
}

c语言

#include<stdio.h>
#include<string.h>
int visit[100]={0};
int G[100][100];
void DFS(int i,int n);
void BFS(int i,int n);int main(void) {int n,i,m,a,b;scanf ("%d %d",&n,&m);for (i=0;i<m;i++) {scanf ("%d %d",&a,&b);G[a][b]=G[b][a]=1;}for (i=0;i<n;i++) {if (visit[i]==0) {printf ("{");DFS(i,n);printf (" }\n");}}for (i=0;i<n;i++) {visit[i]=0;}//visit[100]={0};for (i=0;i<n;i++) {if (visit[i]==0) {printf ("{");BFS(i,n);printf (" }\n");}}return 0;
}
void DFS(int i,int n) {int j;printf (" %d",i);visit[i]=1;for (j=0;j<n;j++) {if(visit[j]==0&&G[i][j]==1) {DFS(j,n);}}
}
void BFS(int i,int n) {int a[100],j,x=-1,y=-1,last=0,v;visit[i]=1;a[++x]=i;while(1) {if (x==y) break;v=a[++y];printf (" %d",v);for (j=0;j<n;j++) {if (visit[j]==0&&G[v][j]==1) {a[++x]=j;visit[j]=1;}}}
}

数据结构与算法A实验六图论---7-1 列出连通集(BFS DFS)相关推荐

  1. 数据结构与算法A实验六图论(C语言参考代码)

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

  2. 数据结构与算法A实验六图论---7-11 邻接表创建无向图

    采用邻接表创建无向图G ,依次输出各顶点的度. 输入格式: 输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数. 输入第二行为顶点的信息,每个顶点只能用一个字符表 ...

  3. 数据结构与算法A实验六图论---7-5 任务调度的合理性(拓扑排序)

    假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行."任务调度"包括一组子任务.以及每个子任务可以执行所依赖的子任务集. 比如完 ...

  4. 数据结构与算法A实验六图论---7-6 家庭房产(并查集)

    给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 ...

  5. 数据结构与算法A实验六图论---7-9 最短路径(并查集Dijkstra)

    给定一个有N个顶点和E条边的无向图,顶点从0到N−1编号.请判断给定的两个顶点之间是否有路径存在.如果存在,给出最短路径长度. 这里定义顶点到自身的最短路径长度为0. 进行搜索时,假设我们总是从编号最 ...

  6. 数据结构与算法A实验六图论---7-4 公路村村通(最小生成树Prime和Kruskal算法)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...

  7. 数据结构与算法A实验六图论---7-10 邻接矩阵表示法创建无向图

    采用邻接矩阵表示法创建无向图G ,依次输出各顶点的度. 输入格式: 输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数. 输入第二行为顶点的信息,每个顶点只能用一 ...

  8. 数据结构与算法A实验六图论---7-2 哈利·波特的考试(Flody算法)

    哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变化的魔咒就是简单地将原来的魔咒倒过来念 ...

  9. 数据结构与算法A实验六图论---7-12 Dijkstra算法(模板)

    给一个n(1 ≤ n ≤ 2500) 个点 m(1 ≤ m ≤ 6200) 条边的无向图,求 s 到 t 的最短路. 输入格式: 第一行四个由空格隔开的整数 n.m.s.t. 之后的 m 行,每行三个 ...

  10. 数据结构与算法A实验六图论---7-7 最短工期 (拓扑排序)

    一个项目由若干个任务组成,任务之间有先后依赖顺序.项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务.现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工 ...

最新文章

  1. Pycharm搜索文件名、符号名
  2. 微软称电脑系统识别能力已经超越了人类
  3. 【推荐系统入门】一窥推荐系统的原理
  4. Microsoft My Phone试用手记
  5. Apollo快速使用
  6. 密码机项目安装软件时候出现的问题以及对应的解决办法
  7. Go语言的变量、函数、Socks5代理服务器
  8. lightgbm algorithm case of kaggle(上)
  9. 安川机器人仿真软件安装
  10. 百科知识 画法几何创造性思维训练
  11. Android系统关于音量相关的控制-初识
  12. 手机号码相关信息整理
  13. Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec Memory Limit: 4 MB Submit: 8787
  14. 【笔记本维修】【基础知识】【二极管 三极管】
  15. 请记住这个数字-2147483648到2147483647
  16. 完全免费最好的在线pdf转word转换
  17. Linux怎么导出inx格式文件,inx文件扩展名,inx文件怎么打开?
  18. 带adam优化器版本的神经网络
  19. 笔记:python中的蜘蛛图
  20. 如何快速合并PDF文件?

热门文章

  1. python画二维温度云图_Python之路—matplotlib与云图
  2. 淮阴工学院C语言考试题库,淮阴工学院C语言题库练习题1.ppt
  3. 【linux驱动分析】之dm9000驱动分析
  4. python 动态导入模块和类
  5. 甜菜碱改善肥胖和代谢,肠道菌群是关键
  6. 【Ubuntu】安装Adobe Acrobat
  7. webstrom忽略文件夹建索引
  8. 计算机监控系统维护重点,监控系统维护制度
  9. 共享链基于区块链技术的共赢社区
  10. 如何刻录VCD防盗光盘