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

Language | Haskell98 |

Basic Graph Algorithms

## Synopsis

- grev :: DynGraph gr => gr a b -> gr a b
- undir :: (Eq b, DynGraph gr) => gr a b -> gr a b
- unlab :: DynGraph gr => gr a b -> gr () ()
- gsel :: Graph gr => (Context a b -> Bool) -> gr a b -> [Context a b]
- gfold :: Graph gr => (Context a b -> [Node]) -> (Context a b -> c -> d) -> (Maybe d -> c -> c, c) -> [Node] -> gr a b -> c
- efilter :: DynGraph gr => (LEdge b -> Bool) -> gr a b -> gr a b
- elfilter :: DynGraph gr => (b -> Bool) -> gr a b -> gr a b
- hasLoop :: Graph gr => gr a b -> Bool
- isSimple :: Graph gr => gr a b -> Bool
- postorder :: Tree a -> [a]
- postorderF :: [Tree a] -> [a]
- preorder :: Tree a -> [a]
- preorderF :: [Tree a] -> [a]

# Graph Operations

undir :: (Eq b, DynGraph gr) => gr a b -> gr a b Source #

Make the graph undirected, i.e. for every edge from A to B, there exists an edge from B to A.

:: Graph gr | |

=> (Context a b -> [Node]) | direction of fold |

-> (Context a b -> c -> d) | depth aggregation |

-> (Maybe d -> c -> c, c) | breadth/level aggregation |

-> [Node] | |

-> gr a b | |

-> c |

Directed graph fold.

# Filter Operations

efilter :: DynGraph gr => (LEdge b -> Bool) -> gr a b -> gr a b Source #

Filter based on edge property.

elfilter :: DynGraph gr => (b -> Bool) -> gr a b -> gr a b Source #

Filter based on edge label property.

# Predicates and Classifications

# Tree Operations

postorderF :: [Tree a] -> [a] Source #

Flatten multiple `Tree`

s in post-order.