我有一个图表,我想获得连接组件的数量。这可以通过 BFS 或 DFS 遍历轻松完成。但之后,我将迭代地删除图的某些边,并再次询问结果图中的连通分量的数量。
一个简化的使用示例是:
graph G = some_graph();
while (some_condition) {
cout << connected_components(G);
edge e = some_edge_of(G);
G.delete(e);
}
我已经找到了几种处理这个主题的动态图算法(使用允许更快地重新计算连接组件数量的数据结构,而不是对图进行另一次遍历)。
但是你能节省我一些时间来实现它们并为我提供一些免费实现的链接吗?(最好在 C 或 C++ 中)