Spargel is a Java graph library providing mainpulation and operating on mathematical graphs. The main aim of this library is to provide a very small, type-safe yet powerful interface to various graphs. For this reason, there are not many implementations or various graph types, but vertice and edge properties of a graph are managed by a normal implementation of the Java Map interface. Hence, any given type can be assigned as an property of an edge or vertice, e.g. creating a mapping from an edge to a number creates a weighted graph.
The implementations of these vertice and egde maps are bounded to the graph class being used, which saves memory and cpu time compared to using for example a normal HashMap. At the moment spargel provides following graph classes included in the [datastructures] package:
Spargel includes [algorithms] to perform on a given graph. These are written using the general [interfaces] of spargel and accept mostly as parameters the graph, vertices or edges and the vertice or edge maps.
The [util] package provides helpers like traversal or vertice joining. In this package are also wrappers for graphs, vertice and edge maps included. Those will then allow creating sub-graph views or modified view of maps (also for vertice and edge maps) or other collections.
For a quick introduction see the [Using] and/or [FAQ] section.
Wiki: FAQ
Wiki: Using
Wiki: algorithms
Wiki: datastructures
Wiki: interfaces
Wiki: util