
Jgrapht is a free java graph library that provides mathematical graph theory objects and algorithms. jgrapht supports various types of graphs including:
- directed and undirected graphs
- graphs with weighted, unweighted, labeled or user-defined edges
- various edge multiplicity options, including simple graphs,
multigraphs and pseudographs
- unmodifiable graphs: allow modules to provide "read-only" access
to internal graphs
- listenable graphs: allow external listeners to track modification events
- subgraphs: graphs that are auto-updating subgraph views on other graphs