在有向图上使用标准,
std::vector<size_type> dtime(N);
std::vector<size_type> ftime(N);
size_type t = 0;
dfs_time_visitor<size_type*> vis(&dtime[0], &ftime[0], t);
depth_first_search(graph, visitor(vis));
似乎总是从节点 0 开始 dfs。
如何告诉算法从已知的“根节点”开始?
最佳答案
Here 您可以找到 depth_first_search
的所有重载的列表。您需要的是“named parameter 版本”。您需要使用的参数是“root_vertex”,您对 depth_first_search
的调用就是:
depth_first_search(graph, visitor(vis).root_vertex(root_vertex_descriptor));
关于C++ Boost 图库 :- Specifying Root Node for a DFS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11016441/