Graph algorithms implemented in Go.
The goal of this package is to provide implementations for both graphs and graph algorithms (alongside some common data structures used by them), which can either be used directly or as a reference when implementing your own version. Keep in mind that some design decisions were made with ease of use and formatting support in mind, so you could always write a leaner/faster version (even asymptotically so) with such features stripped away.
At any point, a graph can be exported to a DOT file, which can then be processed by Graphviz. This makes it easy to take a snapshot of a graph before and after the execution of an algorithm, formatting the output as desired. Any particular DOT language feature that is not supported by the module can be added/modified in the resulting DOT files.
Examples can be found in the samples folder.