This library contains a set of classes for representing graphs. Support for both directed and undirected graphs are included, as well as weighted and unweighted.
The classes are implemented as templates, and operate as containers. Each node in a graph has a unique key value, and each node may have an associated data value. (The type of the data value is defaulted such that you may use only the key values to work with any of these graph classes.) When instantiating a graph class, you must specify the type to be used for the key values, and optionally specify the type to be used for the associated data value of a node.
Implementation of these classes is modeled much like the behavior of the STL container classes. This includes support for iterators. Two kinds of iterators are supported in this library: