我正在考虑使用Boost Graph Library作为dag图的基础。我之前并没有真正使用它,所以不太熟悉它是如何工作的。
虽然我不需要边权和巧妙的遍历算法,但我非常希望免费获得序列化,加上强制执行dag图和禁用并行弧的约束。
计划抽象BGL的复杂性,但这种情况是否过度,因为我只会选择一个节点并对其所有子节点进行递归?
我还希望能够拥有未连接到图中其他节点的孤立节点,但仍能够在图中迭代这些节点。这是提供的东西,还是我必须存储我自己的节点集合?
答案 0 :(得分:2)
提供了对图中节点的迭代。有一个接口在节点上返回begin, end
对迭代器(边缘上有类似的迭代器):
std::pair<vertex_iterator, vertex_iterator> vertices(const adjacency_list& g)