Menu

Home

Tim Schäfer Philipp Hülsdunk

SPARGEL

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:

  • AdjListGraph implementing one adjecency list.
  • BiAdjListGraph implementing two adjecency lists, one for successors and another for predecessors.
  • UAdjListGraph implementing one adjecency list for an undirected graph

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.


Related

Wiki: FAQ
Wiki: Using
Wiki: algorithms
Wiki: datastructures
Wiki: interfaces
Wiki: util