动态图算法的实现,该算法在删除边后保留图的连接分量的数量

Implementation for dynamic graph algorithm that keeps the number of connected components of a graph after deleting edges

本文关键字:算法 连接 保留 分量 实现 动态 删除      更新时间:2023-10-16

我有一个图表,我想获取连接的组件的数量。这可以通过 BFS 或 DFS 遍历轻松完成。但之后,我将反复删除图形的某些边,并再次询问结果图形中连接组件的数量。

一个简化的使用示例是:

graph G = some_graph();
while (some_condition) {
    cout << connected_components(G);
    edge e = some_edge_of(G);
    G.delete(e);
}

我已经找到了几种处理这个主题的动态图算法(使用数据结构,与再次遍历图相比,可以更快地重新计算连接组件的数量)。

但是你能为我节省一些时间来实现它们,并为我提供一个指向一些免费实现的链接吗?(最好是 C 或 C++)

Boost Graph Library 有你想要的东西,虽然从我的角度来看,学习曲线非常陡峭......

有一本关于它的书。