c++ - 删除边后保留图连通分量数的动态图算法的实现

标签 c++ algorithm graph

我有一个图表,我想为它获取连通分量的数量。这可以通过 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有你要找的东西, 尽管从我的角度来看,学习曲线非常陡峭......

a book关于它。

关于c++ - 删除边后保留图连通分量数的动态图算法的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14521868/

相关文章:

c++ - 多次指定对象 - 从 C++ 调用 asm 代码时未解析的外部符号

c++ - 如何在 OpenGL 中绘制纹理

algorithm - 从 N 个数中找出最大和第二大的数

algorithm - DAG 中的最小路径覆盖

C++ 什么是更糟糕的抽象或转换?

c++ - 模板代码的有效性是什么意思?

python - 如何将任何数字四舍五入到最接近的 5 的倍数?

python - 找出网格中的最大颜色数

用于动态可视化的 Java 图形库

r - 使用 R 从 GTFS 数据创建 iGraph 图