Из того, что я могу собрать как использовать BGL для того, чтобы вызвать ДФС графа из известного корневого узла, мне нужно сделать что-то вдоль линийC++ Boost graph library: Построение вектора вершин, посещенных в неориентированном поиске графа?
class MyVisitor : public boost::default_dfs_visitor
{
public:
void discover_vertex(MyVertex v, const MyGraph& g) const
{
cerr << v << endl;
return;
}
};
void bfsMethod(Graph g, int rootNodeId)
{
boost::undirected_dfs(g, vertex(rootNodeId,g), boost::visitor(vis));
}
Теперь я не знаю, как я изменить это так, что std::vector
из vertexId (или указателей) строится, поскольку DFS посещает все вершины на графике аналогично тому, как можно использовать алгоритм минимального связующего дерева, например
std::vector <JPEdge> spanning_tree;
kruskal_minimum_spanning_tree(g, std::back_inserter(spanning_tree));
Спасибо, что я подозревал, но тогда как я вызываю boost :: undirected_dfs/retrieve вектор MyVertex? Просто общедоступный метод getVV в MyVisitor или есть ли более интересный способ в аналогичном ключе к крускальному звонку? – oracle3001
@ oracle3001: см. Мое обновление –
Спасибо за помощь – oracle3001