Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define N 105
- using namespace std;
- ifstream fin("BFS.in");
- ofstream fout("BFS.out");
- int n,m,nd;
- bool a[N][N], viz[N];
- int prim, ultim, C[N];
- void Citire()
- {
- int x,y;
- fin>>n>>m>>nd;
- while(fin>>x>>y)
- {
- a[x][y]=1;
- a[y][x]=1;//neorientate
- }
- }
- void Init(int nd)
- {
- prim=ultim=1;
- C[prim]=nd;
- viz[nd]=1;
- }
- void BFS()///iterativ
- {
- int varf;
- while(prim<=ultim)
- {
- varf=C[prim++];
- for(int k=1;k<=m;k++)
- if(a[varf][k]==1 && viz[k]==0)
- {
- C[++ultim]=k;
- viz[k]=1;
- }
- }
- }
- void BFS_r()///recursiv
- {
- int varf;
- if(prim<=ultim)
- {
- varf=C[prim++];
- for(int k=1;k<=m;k++)
- if(a[varf][k]==1 && viz[k]==0)
- {
- C[++ultim]=k;
- viz[k]=1;
- }
- BFS_r();
- }
- }
- void Afisare()
- {
- for(int i=1;i<=ultim;i++)
- fout<<C[i]<<' ';
- }
- int main()
- {
- Citire();
- Init(nd);
- BFS_r();
- Afisare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement