nicuvlad76

Untitled

Jan 27th, 2021
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 101
  3. using namespace std;
  4. ifstream fin("BFS.in");
  5. ofstream fout("BFS.out");
  6. int n,m,x;
  7. int a[N][N];
  8. void Citire()///citirea datelor
  9. {
  10. int i,j;
  11. fin>>n>>m>>x;
  12. while(fin>>i>>j)
  13. a[i][j]=a[j][i]=1;///grafuri neorientate
  14. }
  15. int C[N]; ///coada
  16. bool viz[N]; ///1 daca nod a fost vizitat si 0 altfel
  17. int pr, ul;
  18.  
  19. void BFS(int x)///parcurgerea in latime - conexitate , lant minim
  20. {
  21. ///initializari coada
  22. pr=ul=1;
  23. C[pr]=x; ///am introdus pe x in coada
  24. viz[x]=1;///am vizitat elem din coada
  25. while(pr<=ul)///mai exista elemente in coada
  26. {
  27. int nod=C[pr]; pr++;///extrag primul element
  28. for(int i=1;i<=n;i++) ///parcurg nodurile
  29. if(a[nod][i]==1 && viz[i]==0) ///gasesc un vecin nevizitat
  30. {
  31. C[++ul]=i;///am introdus in coada varful i
  32. viz[i]=1;///l-am vizitat i
  33. }
  34. }
  35. }
  36.  
  37. void Afisare()
  38. {
  39. for(int i=1;i<=ul;i++)
  40. fout<<C[i]<<' ';
  41. }
  42.  
  43. int main()
  44. {
  45. Citire();
  46. BFS(x);
  47. Afisare();
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment