Cod sursa(job #1076049)

Utilizator Savin.MirceaSavin Mircea Ionut Savin.Mircea Data 9 ianuarie 2014 20:39:26
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<iostream>
#include<fstream>
using namespace std;
struct muchii{int x,y;};
muchii muchie[100];
int vizitat[100];
int m,n;
int nr=0;
void citire()
{
  int i;
  ifstream f("muchii.txt");
  f>>n;
  f>>m;
  for(i=1;i<=m;i++)
    {
    f>>muchie[i].x;
    f>>muchie[i].y;
    }
  f.close();
}

void afisare()
{
int i,j;
cout<<"Graful are "<<m<<" muchii";
cout<<"\nMuchiile grafului sunt: \n{";
for(i=1;i<=m;i++)
cout<<"("<<muchie[i].x<<","<<muchie[i].y<<")  ";
cout<<"}";
}

void Viziteaza(int start)
{
    vizitat[start]=1;
    int i;
    for(i=0;i<n;i++)
    {
        if(vizitat[muchie[start].y]==0)
            Viziteaza(muchie[start].y);
    }

}

void DFS()
{
    int i;
    for(i=1;i<=n;i++)
    {
        if(vizitat[i]==0)
        {
             Viziteaza(i);
             nr++;
        }
    }
}

int main()
{
    int i;
    citire();
    afisare();
    for(i=0;i<=n;i++)
        vizitat[i]=0;
    DFS();
    cout<<"\n\nNumarul de componente conexe este: "<<nr;
    return 0;
}