mirror of
https://github.com/c-blake/gralg
synced 2026-01-12 19:21:41 +00:00
No description
| tests | ||
| util | ||
| gaLP.nim | ||
| gaPrioQ.nim | ||
| grAlg.nim | ||
| grAlg.nimble | ||
| LICENSE | ||
| README.md | ||
This is a small collection of classical graph algorithms on digraphs in Nim.
The core abstractions representing a graph are some kind of not necessarily dense integer-like address space, some nodes iterator on the graph and some edges(graph, node) iterator on the kids of a node/destinations of arcs.
It also contains (also at the top level) gaPrioQ.nim since the shortest path
algorithm made famous by Dijkstra needs a priority queue that can efficiently
edit entry priorities and std/heapqueue does not allow this.
https://github.com/c-blake/thes has demos/tests of most of these algorithms, but a quick list is:
- arc/edge reversal
- topological sorting/testing for DAG/cyclicity
- transitive closure
- shortest path from beginning to end via BFS
- shortest path from beginning to end via Dijkstra
- components when viewed as an undirected graph
- min cost spanning tree of weighted, undirected graph
Should probably grow Max Flow, and weak strong components algorithms.