We are no longer accepting contributions to Documentation. Please see our post on meta.
Sign up or log in
Save edit as a guest
Join Stack Overflow
We recognize you from another Stack Exchange Network site!
Join and Save DraftThis draft deletes the entire topic.
The function takes the argument of the current node index, adjacency list (stored in vector of vectors in this example), and vector of boolean to keep track of which node has been visited.
void dfs(int node, vector<vector<int>>* graph, vector<bool>* visited) {
// check whether node has been visited before
if((*visited)[node])
return;
// set as visited to avoid visiting the same node twice
(*visited)[node] = true;
// perform some action here
cout << node;
// traverse to the adjacent nodes in depth-first manner
for(int i = 0; i < (*graph)[node].size(); ++i)
dfs((*graph)[node][i], graph, visited);
}
Using Google
Using Facebook
Using Email and Password
We recognize you from another Stack Exchange Network site!
Join and Save Draft