Page 47 - Algorithms Notes for Professionals
P. 47

Chapter 10: Graph Traversals



       Section 10.1: Depth First Search traversal function


       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);
       }



























































       colegiohispanomexicano.net – Algorithms Notes                                                            43
   42   43   44   45   46   47   48   49   50   51   52