Advertisement
nicuvlad76

Untitled

Nov 25th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #include <fstream>
  2. #define N 105
  3. using namespace std;
  4. ifstream fin("BFS.in");
  5. ofstream fout("BFS.out");
  6. struct nod
  7. {
  8. int info;
  9. nod* urm;
  10. }*L[N];
  11.  
  12. int n,m,nd;
  13. bool viz[N];
  14.  
  15. int prim, ultim, C[N];
  16. void Citire()
  17. {
  18. int x,y;
  19. fin>>n>>m>>nd;
  20.  
  21. while(fin>>x>>y)
  22. {
  23. nod* p,*q;
  24. p=new nod;
  25. p->info=y;
  26. p->urm=L[x];
  27. L[x]=p;
  28.  
  29. q=new nod;///neorientate
  30. q->info=x;
  31. q->urm=L[y];
  32. L[y]=q;
  33. }
  34. }
  35. void Init(int nd)
  36. {
  37. prim=ultim=1;
  38. viz[nd]=1;
  39. C[prim]=nd;
  40. }
  41. void BFS()
  42. {
  43. int varf,nr;
  44. nod*p;
  45. while(prim<=ultim)
  46. {
  47. varf=C[prim++];
  48. p=L[varf];
  49. while(p)
  50. {
  51. nr=p->info;
  52. if(viz[nr]==0)
  53. {
  54. C[++ultim]=nr;
  55. viz[nr]=1;
  56. }
  57. p=p->urm;
  58. }
  59. }
  60. }
  61.  
  62. void BFS_r()
  63. {
  64. int varf,nr;
  65. nod*p;
  66. if(prim<=ultim)
  67. {
  68. varf=C[prim++];
  69. p=L[varf];
  70. while(p)
  71. {
  72. nr=p->info;
  73. if(viz[nr]==0)
  74. {
  75. C[++ultim]=nr;
  76. viz[nr]=1;
  77. }
  78. p=p->urm;
  79. }
  80. BFS_r();
  81. }
  82. }
  83. void Afisare()
  84. {
  85. for(int i=1;i<=ultim;i++)
  86. fout<<C[i]<<' ';
  87. }
  88. int main()
  89. {
  90. Citire();
  91. Init(nd);
  92. BFS();
  93. Afisare();
  94.  
  95. return 0;
  96. }
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement