src/work/marci/bfs_dfs_misc.h
changeset 545 367929c61461
parent 541 5c5d970ef2f0
child 548 61898ac9e9dc
equal deleted inserted replaced
0:c11ac44ed480 1:034a8ffaad8e
     1 // -*- c++ -*-
     1 // -*- c++ -*-
     2 #ifndef HUGO_BIPARTITE_GRAPHS_H
     2 #ifndef HUGO_BFS_DFS_MISC_H
     3 #define HUGO_BIPARTITE_GRAPHS_H
     3 #define HUGO_BFS_DFS_MISC_H
     4 
     4 
     5 #include <bfs_iterator.h>
     5 #include <bfs_iterator.h>
     6 #include <for_each_macros.h>
     6 #include <for_each_macros.h>
     7 
     7 
     8 namespace hugo {
     8 namespace hugo {
    45     ReachedMap reached(g/*, false*/);
    45     ReachedMap reached(g/*, false*/);
    46     DfsIterator<Graph, ReachedMap> dfs(g, reached);
    46     DfsIterator<Graph, ReachedMap> dfs(g, reached);
    47     FOR_EACH_LOC(typename Graph::NodeIt, n, g) {
    47     FOR_EACH_LOC(typename Graph::NodeIt, n, g) {
    48       if (!reached[n]) {
    48       if (!reached[n]) {
    49 	dfs.pushAndSetReached(n);
    49 	dfs.pushAndSetReached(n);
    50 	while (!bfs.finished()) {
    50 	while (!dfs.finished()) {
    51 	  if (bfs.isANodeExamined()) {
    51 	  if (dfs.isANodeExamined()) {
    52 	    l.push_back(bfs.aNode());
    52 	    l.push_back(dfs.aNode());
    53 	  }
    53 	  }
    54 	  ++bfs;
    54 	  +dfs;
    55 	}
    55 	}
    56       }
    56       }
    57     }
    57     }
    58   }
    58   }
    59 }
    59 }
    60 #endif //HUGO_BIPARTITE_GRAPHS_H
    60 #endif //HUGO_BFS_DFS_MISC_H