Boost logo

Boost Users :

Subject: [Boost-users] [Graph] "Weighted Bacon number" (depth from node) with dijkstra visitor
From: The Maschine (justthemaschine_at_[hidden])
Date: 2013-02-04 06:52:09


Hi all,

In order to find the depth of a source_node from other nodes in my graph,
without weights, I use this simple example of the bacon BFS visitor via the
tree_edge(). I also count the number of nodes from that source.

////////

class bfs_vis : public boost::default_bfs_visitor

{

public:

    bfs_vis(unGraph::vertex_descriptor source, boost::shared_ptr<
VertexStorage> storage) : s(source), cont(storage) { }

    template <typename Edge, typename Graph>

    void tree_edge(Edge e, const Graph& g) const

    {

        typename boost::graph_traits<Graph>::vertex_descriptor

        u = source(e, g), v = target(e, g);

        cont->depth_from->at(v) = cont->depth_from->at(u) + 1.0;

    }

    template <typename Edge, typename Graph>

    void discover_vertex(Edge e, Graph& g)

    {

        cont->node_count = cont->node_count + 1;

    }

private:

    boost::shared_ptr<VertexStorage> cont;

    unGraph::vertex_descriptor s;

};
////////

What would be an equivalent visitor for Dijkstra? Node count is ok but how
do I calculate a "weighted bacon number" with dijkstra
(boost::property<boost::edge_weight_t, float>)??

Thanks,
Tasos



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net