equal
deleted
inserted
replaced
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 |