A simplified and improved version of the graph library Cortez.
This module contains a few data structures and algorithms to work with graphs.
Directed graph data structure with support for self-edges and multigraphs. Both nodes and edges can store a payload, so it's easy to implement weighted graphs, labelled edges, tagging and much more.
It also allows to output a graph in the DOT graph description language.
A generalised graph search algorithm that abstracts many different approaches. Allows you to inject a frontierManager factory that will specify the behaviour of the algorithm when adding and expanding new nodes.
A frontierManager implementing BFS on GGS.
A frontierManager implementing DFS on GGS.
A queue implementation based on two stacks. Approximatively 10 times faster than pushing and shifting over an Array.
Generate auto-incrementing values (particularly useful for IDs).