对通过给定顶点连接的顶点的增强图进行拓扑排序

时间:2013-01-09 10:40:29

标签: boost-graph

我有一个代表一组依赖项的大图。

  • A - > B
  • A - > C
  • B - > F
  • C - > G
  • D - > E
  • E - > L
  • F - > H
  • F - > I
  • H - > K
  • J - > K

将B作为起始节点,结果必须为:B F I H K

我不需要任何其他节点,因为无法从B到达它们。

用户可以指定一个节点,我需要收集这些路径中的所有路径和节点,并打印这些节点的拓扑排序。

目前我正在通过

实现这一点
  1. 制作新图表
  2. 从给定节点中提取所有传出边。
  3. 在图表中添加这些边缘。从这些边缘获取节点并将它们添加到新图形中。
  4. 对于步骤3中的每个节点,重复(2)和(3)
  5. 在新图表上,执行拓扑排序并获取节点的顺序

    还有其他更好的方法来执行此操作或已知算法来查找节点子集的拓扑排序吗?

1 个答案:

答案 0 :(得分:0)

我会查看depth_first_visit()函数和boost提供的访问者模式。访客模式允许您在搜索树时检查顶点和边。 depth_first_visit()函数允许您从特定顶点开始进行DFS搜索。