stronglyConnComp :: Ord key => [(node, key, [key])] -> [SCC node] |
|
stronglyConnCompR :: Ord key => [(node, key, [key])] -> [SCC (node, key, [key])] |
|
|
|
type Graph = Table [Vertex] |
|
type Vertex = Int |
|
type Edge = (Vertex, Vertex) |
|
graphFromEdges :: Ord key => [(node, key, [key])] -> (Graph, Vertex -> (node, key, [key])) |
|
buildG :: Bounds -> [Edge] -> Graph |
|
transposeG :: Graph -> Graph |
|
reverseE :: Graph -> [Edge] |
|
outdegree :: Graph -> Table Int |
|
indegree :: Graph -> Table Int |
|
data Tree a = Node a (Forest a) |
|
type Forest a = [Tree a] |
|
showTree :: Show a => Tree a -> String |
|
showForest :: Show a => Forest a -> String |
|
dfs :: Graph -> [Vertex] -> Forest Vertex |
|
dff :: Graph -> Forest Vertex |
|
topSort :: Graph -> [Vertex] |
|
components :: Graph -> Forest Vertex |
|
scc :: Graph -> Forest Vertex |
|
back :: Graph -> Table Int -> Graph |
|
cross :: Graph -> Table Int -> Table Int -> Graph |
|
forward :: Graph -> Graph -> Table Int -> Graph |
|
reachable :: Graph -> Vertex -> [Vertex] |
|
path :: Graph -> Vertex -> Vertex -> Bool |
|
bcc :: Graph -> Forest [Vertex] |