【发布时间】:2011-08-12 17:55:56
【问题描述】:
我有一棵树(在图形意义上)表示一棵树(在物理意义上)。树表示为 BGL 邻接列表,其中每个顶点包含半径和位置属性,即,我的图以格式定义
struct TreeVertexType {
double radius;
double position[3];
}
typedef adjacency_list<vecS, vecS, undirectedS, TreeVertexType> Tree;
我想在树上执行 DFS 以创建分支列表。附加要求是,每当一个顶点有多个未探索的相邻顶点时,它都会选择具有最大半径的顶点。该规则保证了图的遍历顺序代表了物理树枝。
似乎 DFS 访问者不支持优先级队列,所以我想知道是否有替代搜索公式可以通过 A* 获取此信息?
或者,我可以通过对顶点进行排序来实现我自己的 DFS 算法,但如果可能的话,我宁愿利用 BGL 框架。
谢谢
-约翰
【问题讨论】:
标签: c++ boost graph depth-first-search boost-graph