06-图1 列出连通集
来源:互联网 发布:java中的reflection 编辑:程序博客网 时间:2024/05/22 05:31
06-图1 列出连通集(25 分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。
输入格式:
输入第1行给出2个整数N(0
#include <iostream>using namespace std;const int maxSize=15;int m,G[maxSize][maxSize]={0};int visited[maxSize]={0};void DFS(int V){ visited[V]=1; cout<<V<<' '; for(int i=0;i<m;i++){ if(G[V][i] && !visited[i]) DFS(i); }}void BFS(int V){ const int maxSize=100; int queue[maxSize],font=-1,rear=-1; queue[++rear]=V; visited[V]=1; while(font<rear){ int de=queue[++font]; cout<<de<<' '; for(int i=0;i<m;i++){ if(!visited[i] && G[de][i]){ visited[i]=1; queue[++rear]=i; } } }}void DFS_ALG(){ int i=0; for(;i<m;i++){ if(!visited[i]){ cout<<"{ "; DFS(i); cout<<"}"<<endl; } }}void BFS_ALG(){ int i=0; for(;i<m;i++){ if(!visited[i]){ cout<<"{ "; BFS(i); cout<<"}"<<endl; } }}int main(){ int n,a,b; cin>>m>>n; for(int i=0;i<n;i++){ cin>>a>>b; G[a][b]=1; G[b][a]=1; } DFS_ALG(); for(int i=0;i<m;i++){ visited[i]=0; } BFS_ALG(); return 0;}
阅读全文
0 0
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1-列出连通集
- 06-图1 列出连通集
- PTA 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集 (25分)
- 06-图1 列出连通集 (25分)
- 06-图1 列出连通集 (25分)
- 06-图1 列出连通集 (25分)
- 06-图1 列出连通集 (25分)
- 06-图1 列出连通集 (25分)
- @responseBody注解的使用
- iOS11新特性,如何适配iOS11
- 添加查找
- C#创建数据库和表并把读取到的csv数据存入新建表中
- 把mysql脚本或其他数据库脚本导入Powerdesigner
- 06-图1 列出连通集
- 入门Webpack,看完这篇就够了(基于最新的webpack 3.5.3)
- Android studio 2.3.3.0 报错Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:27.+
- ORBSLAM2单目初始化过程
- 数据库Blob 类型转换String
- Android 仿照第三方app 将自己APP显示在打开列表中
- 搭建ssm框架
- [Sensor]--BMI160-加速度计、陀螺仪传感器
- 进程同步之信号量机制(笔记三)