Pagini recente » Cod sursa (job #2123173) | Cod sursa (job #1275734) | Cod sursa (job #2726808) | Cod sursa (job #1745407) | Cod sursa (job #928829)
Cod sursa(job #928829)
#include<iostream>
#include<fstream>
struct nod{
int data;
nod *next;
};
using namespace std;
ifstream citire("dfs.in");
ofstream afisare("dfs.out");
int dfs(int (&viz)[100],int x,nod *graf[100]){
nod *p;
p=graf[x]->next;
while(p!=NULL){
if(viz[p->data]==0){
viz[p->data]=1;
dfs(viz,p->data,graf);
}
p=p->next;
}
return 0;
}
int main(){
int noduri,muchii,i,y,x,nr=0,viz[100];
citire>>noduri>>muchii;
nod *graf[100],*nou;
for(i = 1;i <= noduri; i++)
{
graf[i]=new nod;
graf[i]->next=NULL;
}
for(i = 1 ;i <= muchii ;i++){
citire>>x>>y;
nou=new nod;
nou->data=y;
nou->next=graf[x]->next;
graf[x]->next=nou;
}
for(i = 1; i <= noduri; i++)
viz[i]=0;
for(i = 1; i <= noduri; i++)
if(viz[i]==0){
nr++;
dfs(viz,i,graf);
}
afisare<<nr;
return 0;
}