Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <functional>
- #include <algorithm>
- using namespace std;
- typedef vector<vector<int>> graph;
- void _visit_graph(graph g, int start, vector<int> *visited, function<void(int)> action) {
- if(find(visited->begin(), visited->end(), start) != visited->end()) return;
- action(start);
- visited->push_back(start);
- for_each(g.at(start).begin(), g.at(start).end(),
- [&g, &visited, &action] (int next) { _visit_graph(g, next, visited, action); });
- }
- void visit_graph(graph g, int start, function<void(int)> action) {
- vector<int> v;
- return _visit_graph(g, start, &v, action);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement