Safe Haskell | None |
---|---|

Language | Haskell2010 |

# Documentation

topSort :: Ord n => [n] -> [(n, n)] -> Maybe [n] Source #

topoligical sort with smallest-numbered available vertex first | input: nodes, edges | output is Nothing if the graph is not a DAG Note: should be stable to preserve order of generalizable variables. Algorithm due to Richard Eisenberg, and works by walking over the list left-to-right and moving each node the minimum distance left to guarantee topological ordering.