Definition
An instance algorithm of class GIT_SCC< Out, In, It, OutSt, InSt, NSt, Mark > is an implementation of an algorithm that computes the strongly connected components.
Iterator version: There is an iterator version of this algorithm: SCC_It. Usage is similar to that of node iterators without the ability to go backward in the sequence and only a graph is allowed at creation time. Method compnumb() returns the component number of the current node.
#include < LEDA/graph _iterator.h >
Creation
GIT_SCC< Out, In, It, OutSt, InSt, NSt, Mark > | algorithm(OutSt ost, InSt ist, Mark ma, Out oai, It it, In iai) | |
creates an instance algorithm of this class bound to the stack st and data accessor ma. |
Preconditions:
Operations
int | algorithm.state() | returns the internal state. |
void | algorithm.finish_algo() | executes the algorithm until finished() is true. |
bool | algorithm.finished() | returns true if the algorithm is finished. |
InSt& | algorithm.get_in_stack() | gives direct access to the internal stack of incoming adjacency iterators. |
In | algorithm.in_current() | returns the current iterator of the internal stack of incoming adjacency iterators. |
OutSt& | algorithm.get_out_stack() | gives direct access to the internal stack of outgoing adjacency iterators. |
Out | algorithm.out_current() | returns the current iterator of the internal stack of outgoing adjacency iterators. |
itnodetype | algorithm.current_node() | returns the current node. |
int | algorithm.compnumb() | returns the component number of the fixed node of the current iterator if current state is NEXT_IN. |
int | algorithm.next() | Performs one iteration of the core loop of the algorithm. |
Implementation
Each operation requires constant time. The algorithm has running time (| V| + | E|).