Pagini recente » Cod sursa (job #1776130) | Cod sursa (job #111379) | Cod sursa (job #1715466) | Profil MocanuAl | Cod sursa (job #2036632)
#include<iostream>
#include<fstream>
#include<iomanip>
#include<vector>
using namespace std;
ifstream in ("dfs.in");
ofstream out ("dfs.out");
vector <int> v[20],viz,coada;
int m,n,u,p;
void citire()
{
int a,b,i,j;
in>>n>>m;
for(i=1;i<=n;i++)
v[i].push_back(0);
for(i=1;i<=m;i++)
{
in>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
}
void afisare_lista()
{
int i,j;
for(i=1;i<=n;i++)
{
cout<<i<<":";
for(j=0;j<v[i].size();j++)
cout<<v[i][j]<<" ";
cout<<'\n';
}
}
void declarare_viz_coada()
{
int i;
for(i=0;i<=n;i++)
{
viz.push_back(0);
coada.push_back(0);
}
}
int exista_nod_nevizitat()
{
int i;
for(i=1;i<=n;i++)
if(viz[i]==0)
return i;
return 0;
}
void parcurgere_latime(int &p,int &u,int x)
{
int i;
coada[u]=exista_nod_nevizitat();
viz[p]=x;
u++;
while(p<=u)
{
for(i=1;i<v[p].size();i++)
{
if(viz[v[p][i]]==0)
{
coada[u]=v[p][i];
u++;
viz[v[p][i]]=x;
}
}
p++;
}
}
int main()
{
int x=1,i;
u=1;p=1;
citire();
afisare_lista();
declarare_viz_coada();
parcurgere_latime(p,u,x);
x++;
while(exista_nod_nevizitat())
{
p=exista_nod_nevizitat();
parcurgere_latime(p,u,x);
x++;
}
out<<x;
return 0;
}