Pagini recente » Cod sursa (job #1788767) | Cod sursa (job #2608020) | Cod sursa (job #2528499) | Cod sursa (job #1588486) | Cod sursa (job #2856370)
#include <fstream>
using namespace std;
ifstream cin("BFS.in");
ofstream cout("BFS.out");
int n,m,p;
int v[102],a[102][102];
int st,dr,coada[1002];
void sortare (int a[102][102],int x)
{
for (int i=1;i<a[x][0];i++)
{
for (int j=i+1;j<=a[x][0];j++)
if (a[x][i]>a[x][j])
swap (a[x][i],a[x][j]);
}
}
void bfs (int p)
{
if (st<=dr)
{
for (int i=1;i<=a[p][0];i++)
if (v[a[p][i]]==0)
{
v[a[p][i]]=1;
cout<<a[p][i]<<" ";
dr++;
coada[dr]=a[p][i];
}
st++;
bfs(coada[st]);
}
}
int main()
{
cin>>n>>m>>p;
for (int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
a[x][0]++;
a[y][0]++;
a[x][a[x][0]]=y;
a[y][a[y][0]]=x;
}
for (int i=1;i<=n;i++)
{
sortare (a,i);
}
v[p]=1;
st=1,dr=1;
coada[1]=p;
cout<<p<<" ";
bfs(p);
}