Advertisement
Guest User

cod

a guest
Feb 21st, 2020
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4. int a[20][20],c[20],viz[20],x,n,comp;
  5. int p;
  6. int u;
  7.  
  8. void citire(int a[20][20], int &n)
  9. { ifstream f("graf.in");
  10. int i,j;
  11. f>>n;
  12. while(f>>i>>j)
  13. a[i][j]=a[j][i]=1;
  14. f.close();
  15. }
  16.  
  17. void afisare(int a[20][20],int n)
  18. { cout<<"Matricea de adiacenta este : "<<endl;
  19. for( int i=1;i<=n;i++)
  20. { for(int j=1;j<=n;j++)
  21. cout<<a[i][j]<<" ";
  22. cout<<endl;
  23. }
  24. }
  25.  
  26. int exista_nod_nevizitat()
  27. { for(int i=1;i<=n;i++)
  28. if(viz[i]==0)
  29. return i;
  30. return 0;
  31. }
  32.  
  33. void bfs(int x)
  34. { comp++;
  35. viz[x]=1;
  36. cout<<"Componenta conexa : "<<comp<<" este formata din nodurile : ";
  37. cout<<x<<" ";
  38. p=u=1;
  39. c[p]=x;
  40. while(p<=u)
  41. {for(int i=1;i<=n;i++)
  42. if(a[c[p]][i]==1)
  43. if(viz[i]==0)
  44. { u++;
  45. c[u]=i;
  46. cout<<i<<" ";
  47. viz[i]=1;
  48. }
  49. p++;
  50. }
  51. cout<<endl;
  52. }
  53.  
  54. int main()
  55. { citire(a,n);
  56. afisare(a,n);
  57. cout<<"Dati nodul de start : "; cin>>x;
  58. bfs(x);
  59. while(exista_nod_nevizitat())
  60. {cout<<1<<" "<<exista_nod_nevizitat()<<" noduri de adaugat "<<endl;
  61.     x=exista_nod_nevizitat();
  62. bfs(x);
  63. }
  64. if(comp==1) cout<<"conex";
  65. else cout<<"neconex "<<endl;
  66. cout<<"Graful este alcatuit din "<<comp <<" componente conexe. ";
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement