升级图的级别顺序遍历

时间:2013-10-22 16:48:28

标签: c++ boost graph boost-graph

我是增强图库的新手并且给定了有向图,我想构建一个水平有序的顶点向量,即给定顶点A,B,C,D,E,F和边

  

A-> B,A-> C,B-> D,C-> E和E-> F

获取图形中相同深度的顶点向量(或该树的树):

  

[[A],[B,C],[D,E],[F]]

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

到目前为止你尝试了什么?

以下是我如何处理此问题的一般性高级描述。

  1. 创建一个数据结构来保存“水平有序矢量”

  2. 创建一个包含此结构的访问者和一个当前深度计数器

  3. 从A开始进行图遍历,以A级深度更新访问者,当前节点在“级别有序向量”中的正确位置

  4. 另一种方式:

    1. 使用捆绑属性功能保存每个节点的深度

    2. 遍历图表,使用正确的深度更新节点属性。

    3. 根据上一步中遍历设置的深度属性,迭代节点以确定每个节点应放在“级别有序向量”中的位置。

    4. 供参考,以下是广度优先遍历方法http://www.boost.org/doc/libs/1_54_0/libs/graph/doc/breadth_first_search.html