See: Description
Interface  Description 

GraphFactory<T extends Vertex>  
WeightedEdgeGraph 
Class  Description 

AbstractGraph<T extends Vertex>  
BfsGraph<T extends UndirectedSimpleVertex & BfsVertex> 
Undirected graph meeting the requirements for conducting breadthfirst search

DfsGraph<E extends DfsEdgeData> 
Utility class that eliminates one type parameter from DirectedEdgeDataGraph

DirectedEdgeDataGraph<T,V extends DirectedEdgeDataVertex<T>> 
Directed graph that supports edge data.

DirectedSimpleGraph<T extends DirectedSimpleVertex>  
DirectedWeightedEdgeGraph<E extends EdgeWeightData,V extends DirectedEdgeDataVertex<E> & EdgeWeightVertex<E>> 
Directed graph supporting floating point edge weight.

EdgeResetter  
KruskalGraph<E extends SpanningTreeEdgeData> 
Utility class that eliminates a type parameter from UndirectedWeightedEdgeGraph

Transposer<T extends Vertex,U extends Vertex> 
Utility class for transposing a graph.

UndirectedEdgeDataGraph<E,V extends UndirectedEdgeDataVertex<E>> 
Undirected graph that supports edge data.

UndirectedSimpleGraph<T extends UndirectedSimpleVertex>  
UndirectedWeightedEdgeGraph<E extends EdgeWeightData,V extends UndirectedEdgeDataVertex<E> & EdgeWeightVertex<E>> 
Undirected graph supporting floating point edge weight.

VertexResetter 
Static methods for resetting all vertices in a graph

Enum  Description 

OrderedDfsGraphFactory 
At the top of the class hierarchy is AbstractGraph
The reason for not making the undirected graphs subclasses of directed graphs is that the only method the graph actually contains is the edgeCount() method, which really needs to be final in all cases: For an undirected graph it will return half of the number of directed edges in the graph, and for a directed graph, all edges will be counted.