标签:des blog io os sp for 数据 div on
1 4 4 0 1 0 2 0 3 2 3
0 1 2 3
#include <math.h>
#include <string.h>
#include <stdio.h>
#include <iostream>
#include <string>
#include <algorithm>
#include <queue>
using namespace std;
int map[102][102];
int vis[102];
int n;
queue<int>q;
void dfs(int dd)
{
int j;
for(j=0; j<n; j++)
{
if(!vis[j] && map[dd][j]==1 )
{
q.push(j);
vis[j]=1;
dfs(j);
}
}
}
int main()
{
int t;
cin>>t;
int i, j;
int m; //n个顶点,从0开始,m条边
int u, v;
while(t--)
{
cin>>n>>m;
memset(map, 0, sizeof(map));
memset(vis, 0, sizeof(vis));
for(i=0; i<m; i++)
{
cin>>u>>v;
map[u][v]=1;
map[v][u]=1;
}
for(i=0; i<n; i++)
{
if(!vis[i])
{
q.push(i);
vis[i]=1;
dfs(i);
}
}
int ff=1;
while(!q.empty())
{
int dd=q.front();
if(ff==1)
{
cout<<dd;
ff=0;
}
else
cout<<" "<<dd;
q.pop();
}
cout<<endl;
}
return 0;
}
数据结构之 图论---图的深度遍历( 输出dfs的先后遍历节点 )
标签:des blog io os sp for 数据 div on
原文地址:http://www.cnblogs.com/yspworld/p/4103952.html