#include <bits/stdc++.h>
using namespace std;
int Graph[10][10];
int N,E;
int visited[10];
void DFS(int node);
void BFS(int node);
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("in.txt", "r", stdin);
#endif
cin >> N >> E;
for(int i = 0; i<E; i++)
{
int x,y;
cin >> x >> y;
//scanf("%d%d",&x,&y);
Graph[x][y] = Graph[y][x] = 1;
}
for(int i = 0; i < N; i++)
{
if(visited[i] == 0)
{
cout << "{";
DFS(i);
cout << " }" << endl;
}
}
memset(visited, 0, sizeof(visited));
for(int i = 0; i < N; i++)
{
if(visited[i] == 0)
{
cout << "{";
BFS(i);
cout << " }" << endl;
}
}
return 0;
}
void DFS(int node)
{
visited[node] = 1;
cout << " " << node;
for(int i = 0; i < N; i++)
{
if(Graph[i][node] == 1 && visited[i] == 0)
{
DFS(i);
}
}
}
void BFS(int node)
{
visited[node] = 1;
queue<int> q;
q.push(node);
while(q.size() > 0)
{
int tmp = q.front();
q.pop();
cout << " " << tmp;
for(int i = 0; i<N; i++)
{
if(Graph[i][tmp] == 1 && visited[i] == 0)
{
visited[i] = 1;
q.push(i);
}
}
}
}
中国大学MOOC-陈越、何钦铭-数据结构-2018秋 06-图1 列出连通集 (25 分)
最新推荐文章于 2021-05-21 15:31:42 发布