Tarjan's Algorithm #
This file implements Tarjan's algorithm for finding the strongly connected components (SCCs) of a graph.
State for Tarjan's algorithm.
id[v]
is the index of the vertexv
in the DFS traversal.lowlink[v]
is the smallest index of any node on the stack that is reachable fromv
throughv
's DFS subtree.The stack of visited vertices used in Tarjan's algorithm.
onStack[v] = true
iffv
is instack
. The structure is used to check it efficiently.- time : ℕ
A time counter that increments each time the algorithm visits an unvisited vertex.
Instances For
The Tarjan's algorithm. See Wikipedia.
Implementation of findSCCs
in the StateM TarjanState
monad.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Finds the strongly connected components of the graph g
. Returns an array where the value at
index v
represents the SCC number containing vertex v
. The numbering of SCCs is arbitrary.
Equations
- One or more equations did not get rendered due to their size.