See: Description
Interface | Description |
---|---|
DirectedGraph<V,E> |
A tagging interface for implementations of
Graph
that accept only directed edges. |
Forest<V,E> |
An interface for a graph which consists of a collection of rooted
directed acyclic graphs.
|
Graph<V,E> |
A graph consisting of a set of vertices of type
V
set and a set of edges of type E . |
Hypergraph<V,E> |
A hypergraph, consisting of a set of vertices of type
V and a set of hyperedges of type E which
connect the vertices. |
MultiGraph<V,E> |
A tagging interface which indicates that the implementing graph accepts
parallel edges.
|
Tree<V,E> |
A subtype of
Graph which is a (directed, rooted) tree. |
UndirectedGraph<V,E> |
A tagging interface for extensions of
Graph that
accept only undirected edges. |
Class | Description |
---|---|
AbstractGraph<V,E> |
Abstract implementation of the
Graph interface. |
AbstractTypedGraph<V,E> |
An abstract class for graphs whose edges all have the same
EdgeType . |
DelegateForest<V,E> |
An implementation of
Forest that delegates to a specified DirectedGraph
instance. |
DelegateTree<V,E> |
An implementation of
Tree that delegates to
a specified instance of DirectedGraph . |
DirectedOrderedSparseMultigraph<V,E> |
An implementation of
DirectedGraph , suitable for sparse graphs,
that orders its vertex and edge collections
according to insertion time. |
DirectedSparseGraph<V,E> |
An implementation of
DirectedGraph suitable for sparse graphs. |
DirectedSparseMultigraph<V,E> |
An implementation of
DirectedGraph , suitable for sparse graphs,
that permits parallel edges. |
GraphDecorator<V,E> |
An implementation of
Graph that delegates its method calls to a
constructor-specified Graph instance. |
ObservableGraph<V,E> |
A decorator class for graphs which generates events
|
OrderedKAryTree<V,E> |
An implementation of
Tree in which each vertex has
<= k children. |
OrderedSparseMultigraph<V,E> |
An implementation of
Graph that orders its vertex and edge collections
according to insertion time, is suitable for sparse graphs, and
permits directed, undirected, and parallel edges. |
SetHypergraph<V,H> |
An implementation of
Hypergraph that is suitable for sparse graphs and
permits parallel edges. |
SortedSparseMultigraph<V,E> |
An implementation of
Graph that is suitable for sparse graphs,
orders its vertex and edge collections according to either specified Comparator
instances or the natural ordering of their elements, and permits directed, undirected,
and parallel edges. |
SparseGraph<V,E> |
An implementation of
Graph that is suitable for sparse graphs and
permits both directed and undirected edges. |
SparseMultigraph<V,E> |
An implementation of
Graph that is suitable for sparse graphs
and permits directed, undirected, and parallel edges. |
UndirectedOrderedSparseMultigraph<V,E> |
An implementation of
UndirectedGraph that is suitable for sparse graphs,
orders its vertex and edge collections according to insertion time, and permits
parallel edges. |
UndirectedSparseGraph<V,E> |
An implementation of
UndirectedGraph that is suitable
for sparse graphs. |
UndirectedSparseMultigraph<V,E> |
An implementation of
UndirectedGraph that is suitable for
sparse graphs and permits parallel edges. |
Interfaces for the JUNG graph types, and some representative implementations.
A graph consists of a set of vertices set and a set of edges which connect the
vertices. The base interface is Hypergraph
, which defines the most
general type of graph; other interfaces (Graph
, DirectedGraph
, etc.)
define more restrictive graph types.
Vertex and edge types are specified at compile type using Java 1.5 generics.
Types of graphs which are supported include (but are not limited to)
Comparator
Notes:
{add,remove}{Edge,Vertex}
, or
in the constructor.
"Wrapper" graphs are available through GraphDecorator
; these are useful
if you want to create a graph implementation that uses another implementation to do the work,
and adds some extra behavior. (One example: ObservableGraph
, which notifies
registered listeners when graph mutations occur.)
Copyright © 2021, 2022 Herve Girod. All Rights Reserved. Documentation and source under the BSD 3-Clause licence