提升很棒.它有一个depth_first_search接受访问者的方法.您可以在此处查看有关它的更多信息.
您需要做的就是实现这样的访问者:
class CycleTerminator : public boost::dfs_visitor<> {
template <class Edge, class Graph>
void back_edge(Edge e, Graph& g) {
//implement
}
};
Run Code Online (Sandbox Code Playgroud)
当然记住后边缘是关闭图中循环的边缘.