Example Strongly Connected ComponentsThe following example shows how to use the LEDA function for strongly connected components. The program creates a graph Then Remark: The graph algorithms in LEDA are generic, that is, they accept graphs as well as parameterized graphs.
#include <LEDA/graph/graph.h>
#include <LEDA/graph/basic_graph_alg.h>
using namespace leda;
int main()
{
graph G;
node n0=G.new_node();node n1=G.new_node();
node n2=G.new_node();node n3=G.new_node();
node n4=G.new_node();node n5=G.new_node();
G.new_edge(n0,n1);G.new_edge(n1,n2);G.new_edge(n2,n0);
G.new_edge(n4,n5);G.new_edge(n5,n4);
node_array<int> compnum(G);
int c=STRONG_COMPONENTS(G,compnum);
std::cout << "G has " << c
<< " strongly connected components" << std::endl;
node v;
forall_nodes(v,G) {
std::cout << "compnum[";
G.print_node(v);
std::cout << "]=" << compnum[v] << std::endl;
}
//compnum[v]=0 for [0],[1],[2]
//compnum[v]=1 for [3]
//compnum[v]=2 for [4],[5]
return 0;
}
|
See also:Manual Entries: |