Pagini recente » Cod sursa (job #2470703) | Cod sursa (job #2453198) | Cod sursa (job #1347626) | Cod sursa (job #194606) | Cod sursa (job #2148328)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int NMAX = 100005;
int n, m, viz[NMAX], cnt;
typedef struct nod
{
int info;
nod *a;
}*pNod;
pNod v[NMAX];
void add(pNod &dest, int val);
void Read();
void DFS(int node);
int main()
{
Read();
for(int i = 1; i <= n; i++)
if(!viz[i])
{
cnt++;
DFS(i);
}
fout << cnt;
return 0;
}
void add(pNod &dest, int val)
{
pNod p;
p = new nod;
p ->info = val;
p ->a = dest;
dest = p;
}
void Read()
{
fin >> n >> m;
for(int i = 1; i <= m; i++)
{
int x,y;
fin >> x >> y;
add(v[x],y);
add(v[y],x);
}
}
void DFS(int node)
{
pNod p;
viz[node] = 1;
for(p = v[node]; p != NULL; p = p ->a)
if(!viz[p ->info])
DFS(p ->info);
}