Implementations of the JUNG vertex, edge, and graph interfaces.

The Abstract classes provide skeletal implementations of the Graph, Edge, and Vertex interfaces, so as to minimize the amount of work necessary to produce functioning classes. The Directed and Undirected implementations extend the Abstract implementations for directed and undirected graphs, respectively.

In addition, BipartiteGraph implements a package for graphs constrained such that vertices from one class can only connect to vertices from the other, and vice versa.

Last, the HypergraphBPG implements a version of Hypergraph built over BipartiteGraph.