Boost图对有向图的无向遍历
Boost Graph undirected traversal of directed graph
我正在使用Boost Graphs。我的图的边有一个有向的意义。这就是我选择有向图的原因。然而,当我遍历图形时,我通常会忽略方向。然而,我还没有找到一个解决方案来遍历我的图形,例如使用内置的深度优先搜索。
是否有一种不需要复制整个图的解决方案?
如果没有:我不确定我的图是否实际上是由自然引导的。也许我应该使用无向图,并添加一些"方向"属性?我不确定如何做到这一点(简单地将源/目标vertex_descriptors附加到边缘,一旦图形发生变化,显然会中断)。有可能这样做吗?这有意义吗?
谢谢
我不知道Boost Graphs的实现,但我可以在您的情况下看到两个选项。
- 如果你的图不是很大,那么你可以先创建一个非有向图,计算你的"东西",然后创建一个有向拷贝。这应该占用
O(n)
时间,不会影响整体性能。 - 使用无向图,并添加一些关于边缘方向的信息,如指向源顶点的指针。这个解决方案可能会让你的算法变得更复杂,但你会避免任何数据复制,并在大图形上获得一些性能。
相关文章:
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- C++创建指向有向图中节点的指针数组
- 如何仅在 2 个节点之间获取最短路径,给定邻接列表有向图?
- 有向图 - 如何计算图中彼此顶点可到达的顶点数?
- C++计算有向图中的最短路径
- 使用非递归 DFS 检测有向图中的周期
- 如何将这些节点连接为有向图
- 如何使用广度优先搜索确定是否可以在有向图中到达顶点
- 在有向图中精确访问所有节点一次
- 在有向图中查找第二条最短路径
- 关于如何处理有向图的一个想法
- 找到有向图C 的最短路径
- 分析输入文件以创建有向图C++
- 在使用无序多映射实现的有向图中查找循环
- 如何找到在c++中实现的有向图的所有路径作为邻接列表
- 如何创建具有多个数据的节点的有向图
- 有向图中的广度优先搜索
- 查找路径的有向图邻接矩阵
- 从文件构建有向图
- Boost图对有向图的无向遍历