Pagini recente » Cod sursa (job #136363) | Cod sursa (job #2825028) | Cod sursa (job #2232519) | Cod sursa (job #2031474) | Cod sursa (job #911783)
Cod sursa(job #911783)
#include <iostream>
#include <fstream>
#include <stdlib.h>
#define MAX 100000
typedef struct s_nod
{
int info;
struct s_nod *next;
} nod;
int n,m,i,A,B,cc=0;
nod *Graf[MAX];
int Used[MAX];
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
void parcurgere(int i)
{
nod *index;
if (Graf[i])
{
index=Graf[i];
if (!Used[i])
{
Used[i]=1;
while (index)
{
parcurgere(index->info);
index=index->next;
}
}
}
else
{
Used[i]=1;
}
}
void dfs()
{
int i=1;
for (i=0; i<n; i++)
{
if (!Used[i])
{
cc++;
parcurgere(i);
}
}
}
int main()
{
nod *NNou;
nod *index;
f >> n >> m;
for (i=0; i<m; i++)
{
f >> A >> B;
NNou = (nod*) malloc (sizeof(nod));
if (!NNou)
{
return 1;
}
NNou->info=B;
NNou->next=Graf[A];
Graf[A]=NNou;
NNou = (nod*) malloc (sizeof(nod));
if (!NNou)
{
return 1;
}
NNou->info=A;
NNou->next=Graf[B];
Graf[B]=NNou;
}
dfs();
g << cc;
f.close();
g.close();
return 0;
}