Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int suc[50],pred[50], a[50][50], n, nrc;
- void citire(a[50][50],n)
- { for(int i=1;i<=n;i++)
- for(int j=1;J<=n;j++)
- {cin>>a[i][j];
- while(a[i][j]!=0 && a[i][j]!=1);
- a[j][i]=a[i][j];
- }
- }
- void DFs(int nod)
- { int k;
- suc[nod]=nrc;
- for(k=1;k<=n;k++)
- if (a[nod][k]==1 && suc[k]==0)
- DFs(k);
- }
- void DFp(int nod)
- { int k;
- pred[nod]=nrc;
- for(k=1;k<=n;k++)
- if (a[k][nod]==1 && pred[k]==0)
- DFp(k);
- }
- void comptconex()
- { nrc=1;
- for(int i=1;i<=n;i++)
- if( suc[i]==0) {
- suc[i]=nrc;
- DFs(i); DFp(i);
- for(int j =1;j<=n;j++)
- if(suc[j]!=pred[j])
- suc[j]=pred[j]=0;
- nrc++;
- }
- }
- void afisareCompTareconexe()
- {
- for(int i=1;i<nrc; i++)
- { cout<<”Componenta tare conexa ”<<i<<endl;
- for(int j=1; j<=n;j++)
- if(suc[j]==i) cout<<j<<” ”;
- cout<<endl;}
- }
- int main(){ citire(…);
- comptconex();
- afisareCompTareconexe(); return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement