Interface Graph<T>

Type Parameters:
T - the type of nodes in this graph.
All Superinterfaces:
EdgeManager<T>, Iterable<T>, NodeManager<T>
All Known Subinterfaces:
LabeledGraph<T,U>, NumberedGraph<T>, NumberedLabeledGraph<T,I>, OrderedMultiGraph<T>
All Known Implementing Classes:
AbstractGraph, AbstractLabeledGraph, AbstractNumberedGraph, AbstractNumberedLabeledGraph, BasicOrderedMultiGraph, DelegatingGraph, DelegatingNumberedGraph, EdgeFilteredNumberedGraph, ExtensionGraph, InvertedGraph, InvertedNumberedGraph, SelfLoopAddedGraph, SlowSparseNumberedGraph, SlowSparseNumberedLabeledGraph, SparseNumberedGraph

public interface Graph<T> extends NodeManager<T>, EdgeManager<T>
Basic interface for a directed graph. We choose to define a Graph as a composition of a NodeManager and an EdgeManager, which track nodes and edges, respectively. This way, in many cases we can compose separate NodeManager and EdgeManager implementations to create Graph implementations, using delegation.