c++ - 使用 BGL 创建生成树

标签 c++ algorithm boost graph boost-graph

我有一个 BGL 图,想使用 BGL 创建一个生成树。

从指定的顶点开始,我想将最短的边添加到与该顶点相连的图形中。从那时起,我想始终选择与迄今为止存在的图形相连的最短边。

因此,我想添加一个约束,即每条新边都必须已经连接到图形,同时保持没有循环的生成树标准。

手工操作并不难;但是因为我想学习一些关于 BGL 的知识,所以我想知道哪种算法最适合我的问题。

最佳答案

这听起来像是您正在种植一棵树,从您指定的顶点开始,通过添加将树中的顶点连接到不在您的树中的顶点的最轻边。如果是这种情况,您正在实现 Prim 的算法,它确实为您提供了 MST。在 Cormen、Leiserson、Rivest 和 Stein 的“算法”的 MST 章节中对此进行了很好的描述。

(我说“听起来像”是因为“与目前存在的图相连的最短边”这个说法有点含糊。)

关于c++ - 使用 BGL 创建生成树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4052830/

相关文章:

c++ - 库在静态和动态链接中的顺序

c++ - 使用 Boost 的 program_options 处理复杂的选项

c++ - 使用 boost Zlib 时未解析的外部符号 inflateEnd(和其他)

algorithm - 简单来说,压缩通常是如何实现的?

boost::shared_ptr vector 的 C++ 静态初始化

c++ - 在 Windows 下使用 Eclipse CDT 和 Cygwin

c++ - 在 C++ 中自动将结构数组转换为数组结构

c++ - 使用内存映射文件在 C++ 中解析二进制文件太慢

algorithm - 最优搜索路径策略

java - 寻找盆地的时间复杂度