2016-11-09 10 views
1

С помощью простого графика, это прямо вперед, чтобы позвонить prim_minimum_spanning_tree, чтобы получить результат, начиная с вершины 0:подталкивания prim_minimum_spanning_tree от конкретной начальной вершины

#include <iostream> 

#include <boost/graph/graph_traits.hpp> 
#include <boost/graph/adjacency_list.hpp> 
#include <boost/graph/prim_minimum_spanning_tree.hpp> 

typedef boost::property<boost::edge_weight_t, double> EdgeWeightProperty; 

typedef boost::adjacency_list<boost::setS, boost::vecS, boost::undirectedS, boost::no_property, EdgeWeightProperty> Graph; 

int main(int,char*[]) 
{ 
    // Create a graph object 
    Graph g(3); 

    EdgeWeightProperty e1 = 5; 
    add_edge(0, 1, e1, g); 

    EdgeWeightProperty e2 = 3; 
    add_edge(1, 2, e2, g); 

    std::vector < boost::graph_traits <Graph>::vertex_descriptor > parents(num_vertices(g)); 

    prim_minimum_spanning_tree(g, &parents[0]); 

    for (std::size_t i = 0; i != parents.size(); ++i) { 

     if (parents[i] != i) { 
     std::cout << "parent[" << i << "] = " << parents[i] << std::endl; 
     } 
     else { 
     std::cout << "parent[" << i << "] = no parent" << std::endl; 
     } 
    } 


    return 0; 
} 

Но я не могу расшифровать подпись для указания другая стартовая вершина? Похоже, что это один единственный, который принимает vertex_descriptor (который я предполагаю, что это начало вершина?):

prim_minimum_spanning_tree 
    (const VertexListGraph& g, 
    typename graph_traits<VertexListGraph>::vertex_descriptor s, 
    PredecessorMap predecessor, DistanceMap distance, WeightMap weight, 
    IndexMap index_map, 
    DijkstraVisitor vis) 

какие-либо предложения о том, как это назвать?

ответ