列出连通集
来源:互联网 发布:网络流行歌曲2014 编辑:程序博客网 时间:2024/05/19 22:06
列出连通集
#include<stdio.h>#include<stdlib.h>#include<cstdio>#include<iostream>#include<stack>#include<queue>#include<string.h>using namespace std;#define MaxVerNum 100queue<int> q;typedef struct GNode *PtrToGNode;struct GNode { int Edgs[MaxVerNum][MaxVerNum]; int Vnum,Enum; int Visited[MaxVerNum];}Graph;typedef PtrToGNode MGraph;MGraph CreateGraph(){ MGraph G; G = (MGraph)malloc(sizeof(Graph)); int n,e; cin>>n>>e; G->Vnum=n; G->Enum=e; for(int i=0;i<G->Vnum;i++) for(int j=0;j<G->Vnum;j++) { G->Edgs[i][j]=0; G->Visited[i]=0; G->Edgs[i][i]=1; } int a,b; for(int i=1;i<=G->Enum;i++) { scanf("%d%d",&a,&b); G->Edgs[a][b]=G->Edgs[b][a]=1; } return G;}void DFS(MGraph G, int v){ for(int i=0;i<G->Vnum;i++) { if(G->Visited[i]==0&&G->Edgs[v][i]==1) { printf(" %d",i); G->Visited[i]=1; DFS(G,i); } }}void BFS(MGraph G, int v){ for(int i=0;i<G->Vnum;i++) { if(G->Visited[i]==0&&G->Edgs[v][i]==1) { printf(" %d",i); G->Visited[i]=1; q.push(i); } } while(!q.empty()) { int a=q.front(); q.pop(); BFS(G,a); }}void Print(MGraph G){ for(int i=0;i<G->Vnum;i++) { if(G->Visited[i]==0) { printf("{"); DFS(G,i); printf(" }\n"); } } for(int j=0;j<G->Vnum;j++) { G->Visited[j]=0; } for(int i=0;i<G->Vnum;i++) { if(G->Visited[i]==0) { printf("{"); BFS(G,i); printf(" }\n"); } }}int main() { MGraph G; G=CreateGraph(); Print(G); return 0;}
阅读全文
0 0
- pat--列出连通集
- 列出连通集
- 列出连通集
- 5-6 列出连通集
- 5-6 列出连通集
- 5-6 列出连通集
- 【C/C++】列出连通集
- 7-6 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1-列出连通集
- 06-图1 列出连通集
- PAT--列出连通集--dfs&bfs
- 列出连通集-----简单dfs+bfs
- PTA 06-图1 列出连通集
- 06-图1 列出连通集
- 06-图1 列出连通集
- 5-6 列出连通集 (25分)
- POJ-2481 Cows (树状数组 入门题)
- tensorflow基础语法
- Hash Map / Hash Set
- 基于51单片机的寻迹小车制作(三)
- linux网络编程-----几种服务器模型及io多路复用函数
- 列出连通集
- 10.11
- R Note 统计基础
- java.lang.UnsupportedClassVersionError: org/apache/activemq/spring/ActiveMQConnectionFactory : Unsup
- 通用爬虫(搜索网站爬虫)
- Qt 中如何捕获窗口停用和激活的消息 Activate&Deactivate
- linux 7
- Android 系统默认打开文件的方法
- spring mvc demo案例