| Example Program Transitive Closure Transitive closure code example File "graph_algo_path_transitive.cpp" This code example illustrates the transitive closure algorithm
1 | #include <seqan/graph_algorithms.h>
2 | #include <iostream>
3 |
4 | using namespace seqan;
5 |
6 | int main() {
7 | typedef Graph<Directed<> > TGraph;
8 | typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
9 | typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
10 | typedef Size<TGraph>::Type TSize;
Graph creation: 5 directed edges (3,0), (1,2), ...
11 | TSize numEdges = 5;
12 | TVertexDescriptor edges[] = {3,0, 1,2, 2,1, 1,3, 3,2};
13 | TGraph g;
14 | addEdges(g, edges, numEdges);
15 | std::cout << g << ::std::endl;
Out-parameter: Closure matrix
16 | String<bool> closure;
Transitive-Closure
17 | transitive_closure(g,closure);
Console output
18 | TSize len = (TSize) std::sqrt((double) length(closure));
19 | for (TSize row=0;row < len;++row) {
20 | for (TSize col=0;col < len;++col) {
21 | std::cout << getValue(closure, row*len+col) << ",";
22 | }
23 | std::cout << ::std::endl;
24 | }
25 | return 0;
26 | }
See Graph, transitive_closure SeqAn - Sequence Analysis Library - www.seqan.de