Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Masfiq
- * 17 Apr, 2017
- */
- #include<iostream>
- #include<cstdio>
- #include<vector>
- using namespace std;
- void DFS_utility(vector<vector<int>> gr, vector<int> &color, int src);
- void DFS(vector<vector<int>> gr, int src){
- int nv = gr.size();
- vector<int> color(nv, 0);//0=white/unvisited, 1=grey/visiting its children, 2=black/visited
- DFS_utility(gr,color,src);
- }
- void DFS_utility(vector<vector<int>> gr, vector<int> &color, int src){// taking reference to see the changes in color
- int u=src;
- color[u]=1;//making grey/visiting its children
- for(int i=0;i<gr[u].size();i++){
- int v=gr[u][i];
- if(color[v]==0)
- DFS_utility(gr,color,v);
- }
- color[u]=2;//making black/visited
- }
- int main()
- {
- int n, e;
- scanf("%d %d", &n, &e);
- vector<vector<int>> gr;
- gr.clear();
- gr.resize(n+1);
- for(int i=0; i<e; i++)
- {
- int u,v;
- scanf("%d %d", &u, &v);
- gr[u].push_back(v);
- gr[v].push_back(u);
- }
- DFS(gr, 1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement