Pagini recente » Cod sursa (job #2584517) | Cod sursa (job #2064935) | Cod sursa (job #2382471) | Cod sursa (job #1694613) | Cod sursa (job #278189)
Cod sursa(job #278189)
//bfs
#include <fstream.h>
#include <iostream.h>
#include <conio.h>
#define NMax 100000
int m,n,s,u,a[NMax][NMax],viz[NMax],coada[3*NMax];
void citire()
{
ifstream fin("bfs.in");
int x,y;
fin>>n>>m>>s;
for(int i=1; i<=m; i++) { fin>>x>>y;
a[x][y]=/*a[y][x]=*/1;
viz[i]=0;
}
fin.close();
}
void bfs(int i)
{
int j;
for(j=1; j<=n; j++)
if((a[coada[i]][j]==1) && (viz[j]==0))
{ u++;
coada[u]=j;
viz[j]=1;
}
if (i<=u) bfs(i+1);
}
int main()
{ ofstream fout("bfs.out");
citire();
viz[s]=1;
coada[1]=s;
u=1;
bfs(s);
for(int i=1; i<=n; i++)// cout<<coada[i]<<" ";
if (coada[i]==0) coada[i]=-1;
for(i=1; i<=n; i++) fout<<coada[i]<<" ";
// getche();
fout.close();
return 0;
}