[Lemon-user] Printing Labels in Topological Order
Zeev Sands
zeev.sands at gmail.com
Thu Aug 9 16:02:39 CEST 2012
Hello Lemon users,
I'm new to lemon and is figuring out the basics. My question is about
iterating over a DAG in topological order. Suppose I have a large
labeled Graph (DAG), a map holding labels and a map holding its
topological order, as follows:
// create some graph
Digraph d;
// add some nodes
Digraph::Node n1 = d.addNode();
...
Digraph::Node n234342434 = d.addNode();
// add some arcs
d.addArc(n1, nn234342434);
// Label it
DiraphGraph::NodeMap<string> lables(g);
labels[n1] = "foo";
...
labels[n234342434] = "bar";
// Now sort it
Digraph::NodeMap<int> order(d);
topologicalSort(d, order);
How do I now print the labels in the topological order? Something like
Digraph::Node n = first_in_tipological_order();
while ( n != order.last_in_topological_order()) {
std::cout << labels[n] << std::endl;
n = order.next_in_topological_order();
}
Thank you very much,
Zeev.
More information about the Lemon-user
mailing list