SDUT OJ 2413 數據結構實驗圖論一:基於鄰接矩陣的廣度優先搜索遍歷

 

 

#include<iostream>
#include<memory.h>
using namespace std;
int p[1010][1010];
int visit[110];
int c[1010];
int a=0;
int b=1;
int k;
int t;
void bfs(int n)
{
	a++;
	for(int i=0;i<k;i++)
	{
		if(p[n][i]==1&&visit[i]==0)
		{
			c[b++]=i;
			visit[i]=1;
		}
	}
	if(a<=b)
		bfs(c[a]);
}
int main()
{
	int n,m,u,v,i;
	cin>>n;
	while(n--)
	{
		memset(p,0,sizeof(p));
		memset(visit,0,sizeof(visit));
		cin>>k>>m>>t;
		for(i=0;i<m;i++)
		{
			cin>>u>>v;
			p[u][v]=p[v][u]=1;
		}
		c[0]=t;
		visit[t]=1;
		bfs(t);
		for(i=0;i<b;i++)
			if(i==b-1)
				cout<<c[i]<<endl;
			else
				cout<<c[i]<<" ";
	}
	return 0;
}





 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章