jakaria_hossain

BFS

Oct 23rd, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<vector>
  4. #include<queue>
  5. using namespace std;
  6. vector<int>nodes[100];
  7. int clr[100],cost[100];
  8. queue<int>Q;
  9. void bfs(int src)
  10. {
  11. Q.push(src);
  12. clr[src]=1;
  13. cost[src]=0;
  14. while(!Q.empty())
  15. {
  16. int u=Q.front();
  17. Q.pop();
  18. printf("%d(%d) ",u,cost[u]);
  19. for(int i=0;i<nodes[u].size();i++)
  20. {
  21. if(clr[nodes[u][i]]==0)
  22. {
  23. int v=nodes[u][i];
  24. Q.push(v);
  25. cost[v]=cost[u]+1;
  26. clr[v]=1;
  27. }
  28. }
  29. }
  30.  
  31. }
  32. int main()
  33. {
  34. int i,j,n,edge,source=2,u,v;
  35.  
  36. scanf("%d %d",&n,&edge);
  37.  
  38. for(i=0;i<edge;i++)
  39. {
  40. scanf("%d %d",&u,&v);
  41. nodes[u].push_back(v);
  42. nodes[v].push_back(u);
  43. }
  44. for(i=1;i<=n;i++)
  45. {
  46. printf("%d-->",i);
  47. for(j=0;j<nodes[i].size();j++)
  48. {
  49. printf("%d ",nodes[i][j]);
  50. }
  51. printf("\n");
  52. }
  53. // vector<int>::iterator it;
  54. // for(it=nodes.begin();it!=nodes.end();it++)cout<<*it<<endl;
  55. bfs(source);
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment