Cod sursa(job #393683)

Utilizator swxxIoo Andrei Rares swxx Data 9 februarie 2010 20:16:32
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>
#include <iostream>
using namespace std;
int a[100][100],n,m,viz[100],c[100];


void citire()
{ int i,x,y,j;
    ifstream f ("bfs.in");
    f>>n>>m;
    for(i=1;i<=m;i++)
      {f>>x>>y;
    
       a[x][y]=a[y][x]=1;
       }
       f.close();
    
       }
      
      void bfs(int nod)
      {int li,ls,j,i;
           c[1]=nod;
           viz[1]=1;               //c -vector pe care il folosim ca pe o structura de tip FIFO(coada)
           li=1;ls=1;// li= limita inferioara in coada
                     //ls-  limita superioara in coada
           while (li<=ls)
           {
                 for(j=1;j<=n;j++)
                    if (a[c[li]
                    ][j]==1&&viz[j]==0)
                        {ls++;
                          c[ls]=j;
                          viz[j]=1;
                          }
                          
                    li++;
                    }
}
    
    void afisare()
    {
         ofstream g ("bfs.out");
         int i;
         for(i=1;i<=n;i++)
           g<<c[i]<<" ";
           
           g.close();
           }
            
int main()
{
  citire(); 
   bfs(1);
   afisare();
   return 0;
}