У меня есть дерево (в смысле графа) представление дерева (в физическом смысле).Дерево представлено в виде списка смежности BGL, где каждая вершина содержит свойства радиуса и положения, т. Е. Мой граф определен в виде
struct TreeVertexType {
double radius;
double position[3];
}
typedef adjacency_list<vecS, vecS, undirectedS, TreeVertexType> Tree;
. Я хотел бы выполнить DFS для дерева, чтобы создатьсписок филиалов.Дополнительное требование состоит в том, что всякий раз, когда у вершины есть больше чем одна неизученная смежная вершина, она выбирает вершину с наибольшим радиусом.Это правило гарантирует, что порядок обхода графа соответствует физическим ветвям дерева.
Кажется, что посетитель DFS не поддерживает очередь с приоритетами, и поэтому мне было интересно, есть ли альтернативная формулировка поиска для получения этой информацииможет быть, через A *?
В качестве альтернативы я могу реализовать свой собственный алгоритм DFS путем сортировки вершин, но лучше использовать каркас BGL, если это возможно.
Спасибо
-Джон