A collection of simple graph data structures, used for academic purposes. More info on wiki or visual example
Nodes and edges can have values, so weighted graphs can be built using the same data structures.
AdjacencyList description
AdjacencyList is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.
The graph is undirected with values on nodes and edges.
Each node and edge can have a value interface{}
.
Internally the data is stored as a map of maps map[*Node]map[*Node]interface{}
.
It is a AdjacencyList with 3 extra functions, that allow 1 direction edge control.