Advertisement
Masfiq_ds_algo

ALGR: DFS

Apr 17th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. /*
  2. *   Masfiq
  3. *   17 Apr, 2017
  4. */
  5. #include<iostream>
  6. #include<cstdio>
  7. #include<vector>
  8. using namespace std;
  9.  
  10. void DFS_utility(vector<vector<int>> gr, vector<int> &color, int src);
  11.  
  12. void DFS(vector<vector<int>> gr, int src){
  13.     int nv = gr.size();
  14.     vector<int> color(nv, 0);//0=white/unvisited,  1=grey/visiting its children,  2=black/visited
  15.     DFS_utility(gr,color,src);
  16. }
  17. void DFS_utility(vector<vector<int>> gr, vector<int> &color, int src){// taking reference to see the changes in color
  18.     int u=src;
  19.     color[u]=1;//making grey/visiting its children
  20.     for(int i=0;i<gr[u].size();i++){
  21.         int v=gr[u][i];
  22.         if(color[v]==0)
  23.             DFS_utility(gr,color,v);
  24.     }
  25.     color[u]=2;//making black/visited
  26. }
  27.  
  28. int main()
  29. {
  30.     int n, e;
  31.     scanf("%d %d", &n, &e);
  32.     vector<vector<int>> gr;
  33.     gr.clear();
  34.     gr.resize(n+1);
  35.     for(int i=0; i<e; i++)
  36.     {
  37.         int u,v;
  38.         scanf("%d %d", &u, &v);
  39.         gr[u].push_back(v);
  40.         gr[v].push_back(u);
  41.     }
  42.     DFS(gr, 1);
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement