Class 
Description 
AbstractBaseGraph<V,E> 
The most general implementation of the Graph interface.

AbstractCapacitatedMinimumSpanningTree<V,E> 
This is an abstract class for capacitated minimum spanning tree algorithms.

AbstractFundamentalCycleBasis<V,E> 
A base implementation for the computation of a fundamental cycle basis of a graph.

AbstractGraph<V,E> 
A skeletal implementation of the Graph interface, to minimize the effort required to
implement graph interfaces.

AbstractGraphBuilder<V,E,G extends Graph<V,E>,B extends AbstractGraphBuilder<V,E,G,B>> 
Base class for builders of Graph

AbstractGraphIterator<V,E> 
An empty implementation of a graph iterator to minimize the effort required to implement graph
iterators.

AHUForestIsomorphismInspector<V,E> 
This is an implementation of the AHU algorithm for detecting an (unweighted) isomorphism between
two rooted forests.

AhujaOrlinSharmaCapacitatedMinimumSpanningTree<V,E> 
Implementation of an algorithm for the capacitated minimum spanning tree problem using a cyclic
exchange neighborhood, based on Ravindra K.

AhujaOrlinSharmaCyclicExchangeLocalAugmentation<V,E> 
Implementation of an algorithm for the local augmentation problem for the cyclic exchange
neighborhood, i.e.

AHURootedTreeIsomorphismInspector<V,E> 
This is an implementation of the AHU algorithm for detecting an (unweighted) isomorphism between
two rooted trees.

AHUUnrootedTreeIsomorphismInspector<V,E> 
This is an implementation of the AHU algorithm for detecting an (unweighted) isomorphism between
two unrooted trees.

AliasMethodSampler 
The alias method for sampling from a discrete probability distribution.

AllDirectedPaths<V,E> 
A Dijkstralike algorithm to find all paths between two sets of nodes in a directed graph, with
options to search only simple paths and to limit the path length.

AlphaCentrality<V,E> 
AlphaCentrality implementation.

ALTAdmissibleHeuristic<V,E> 
An admissible heuristic for the A* algorithm using a set of landmarks and the triangle
inequality.

AlwaysEqualComparator<T> 
A default implementation for a check on equality (that always holds)

ArrayUnenforcedSet<E> 
Helper for efficiently representing small sets whose elements are known to be unique by
construction, implying we don't need to enforce the uniqueness property in the data structure
itself.

ArrayUnenforcedSetEdgeSetFactory<V,E> 
An edge set factory which creates ArrayUnenforcedSet of size 1, suitable for small degree
vertices.

AsGraphUnion<V,E> 
Readonly union of two graphs.

AsSubgraph<V,E> 
A subgraph is a graph that has a subset of vertices and a subset of edges with respect to some
base graph.

AsSynchronizedGraph<V,E> 
Create a synchronized (threadsafe) Graph backed by the specified Graph.

AsSynchronizedGraph.Builder<V,E> 

AStarAdmissibleHeuristic<V> 
Interface for an admissible heuristic used in A* search.

AStarShortestPath<V,E> 
A* shortest path.

AsUndirectedGraph<V,E> 
An undirected view of the backing directed graph specified in the constructor.

AsUnmodifiableGraph<V,E> 
An unmodifiable view of the backing graph specified in the constructor.

AsUnweightedGraph<V,E> 
Provides an unweighted view on a graph.

AsWeightedGraph<V,E> 
Provides a weighted view of a graph.

Attribute 
An attribute

AttributeType 
Denotes the type of an attribute.

AVLTree<T> 
Implementation of the AVL tree data
structure.

AVLTree.TreeNode<T> 
Container holding the values stored in the tree.

BarabasiAlbertForestGenerator<V,E> 
BarabásiAlbert growth and preferential attachment forest generator.

BarabasiAlbertGraphGenerator<V,E> 
BarabásiAlbert growth and preferential attachment graph generator.

BarYehudaEvenTwoApproxVCImpl<V,E> 
Implementation of the 2opt algorithm for a minimum weighted vertex cover by R.

BaseBidirectionalShortestPathAlgorithm<V,E> 
Base class for the bidirectional shortest path algorithms.

BaseEventDrivenImporter<V,E> 
Base implementation for an importer which uses consumers to notify interested parties.

BaseExporter<V,E> 
Base implementation for an exporter.

BaseGraphAdapter<V,G extends com.google.common.graph.Graph<V>> 
A base abstract implementation for the graph adapter class using Guava's Graph .

BaseIntrusiveEdgesSpecifics<V,E,IE extends org.jgrapht.graph.IntrusiveEdge> 
A base implementation for the intrusive edges specifics.

BaseNetworkAdapter<V,E,N extends com.google.common.graph.Network<V,E>> 
A base abstract implementation for the graph adapter class using Guava's Network .

BaseValueGraphAdapter<V,W,VG extends com.google.common.graph.ValueGraph<V,W>> 
A base abstract implementation for the graph adapter class using Guava's ValueGraph .

BellmanFordShortestPath<V,E> 
The BellmanFord algorithm.

BergeGraphInspector<V,E> 

BetweennessCentrality<V,E> 
Betweenness centrality.

BFSShortestPath<V,E> 
The BFS Shortest Path algorithm.

BhandariKDisjointShortestPaths<V,E> 
An implementation of Bhandari algorithm for finding $K$ edgedisjoint shortest paths.

BiconnectivityInspector<V,E> 
Allows obtaining various connectivity aspects of a graph.

BidirectionalAStarShortestPath<V,E> 
A bidirectional version of A* algorithm.

BidirectionalDijkstraShortestPath<V,E> 
A bidirectional version of Dijkstra's algorithm.

BinaryLiftingLCAFinder<V,E> 
Algorithm for computing lowest common ancestors in rooted trees and forests using the binary
lifting method.

BipartitePartitioning<V,E> 
Algorithm for computing bipartite partitions thus checking whether a graph is bipartite or not.

BlockCutpointGraph<V,E> 
A BlockCutpoint graph (also known as a blockcut tree).

BlossomVOptions 
BlossomVOptions that define the strategies to use during the algorithm for updating duals and
initializing the matching

BlossomVOptions.DualUpdateStrategy 
Enum for choosing dual updates strategy

BlossomVOptions.InitializationType 
Enum for types of matching initialization

BoruvkaMinimumSpanningTree<V,E> 
Borůvka's algorithm for the computation of a minimum spanning tree.

Box2D 
A 2dimensional box (rectangle).

Boxes 
A collection of utilities to assist with boxes manipulation.

BoyerMyrvoldPlanarityInspector<V,E> 
An implementation of the BoyerMyrvold planarity testing algorithm.

BreadthFirstIterator<V,E> 
A breadthfirst iterator for a directed or undirected graph.

BreadthFirstIterator.SearchNodeData<E> 
Data kept for discovered vertices.

BronKerboschCliqueFinder<V,E> 
BronKerbosch maximal clique enumeration algorithm.

BrownBacktrackColoring<V,E> 
Brown graph coloring algorithm.

CapacitatedSpanningTreeAlgorithm<V,E> 
An algorithm which computes a capacitated (minimum) spanning tree of a given connected graph with
a designated root vertex.

CapacitatedSpanningTreeAlgorithm.CapacitatedSpanningTree<V,E> 
A spanning tree.

CapacitatedSpanningTreeAlgorithm.CapacitatedSpanningTreeImpl<V,E> 
Default implementation of the spanning tree interface.

CapacityScalingMinimumCostFlow<V,E> 
This class computes a solution to a
minimum cost flow problem
using the successive shortest path algorithm with capacity scaling.

ChinesePostman<V,E> 
This class solves the Chinese Postman Problem (CPP), also known as the Route Inspection Problem.

CHManyToManyShortestPaths<V,E> 
Efficient algorithm for the manytomany shortest paths problem based on contraction hierarchy.

ChordalGraphColoring<V,E> 

ChordalGraphIndependentSetFinder<V,E> 

ChordalGraphMaxCliqueFinder<V,E> 

ChordalGraphMinimalVertexSeparatorFinder<V,E> 

ChordalityInspector<V,E> 

ChordalityInspector.IterationOrder 
Specifies internal iterator type.

ChristofidesThreeHalvesApproxMetricTSP<V,E> 
A $3/2$approximation algorithm for the metric TSP problem.

CircularLayoutAlgorithm2D<V,E> 
Circular layout.

ClarksonTwoApproxVCImpl<V,E> 
Implementation of the 2opt algorithm for a minimum weighted vertex cover by Clarkson, Kenneth L.

CliqueAlgorithm<V> 
Algorithm to compute a (weighted) Clique
in a graph.

CliqueAlgorithm.Clique<V> 

CliqueAlgorithm.CliqueImpl<V> 
Default implementation of a (weighted) clique

CliqueMinimalSeparatorDecomposition<V,E> 
Clique Minimal Separator Decomposition using MCSM+ and Atoms algorithm as described in Berry et
al.

ClosenessCentrality<V,E> 
Closeness centrality.

ClosestFirstIterator<V,E> 
A closestfirst iterator for a directed or undirected graph.

ClusteringAlgorithm<V> 
An algorithm which computes a graph vertex clustering.

ClusteringAlgorithm.Clustering<V> 
A clustering.

ClusteringAlgorithm.ClusteringImpl<V> 
Default implementation of the clustering interface.

ClusteringCoefficient<V,E> 
Clustering coefficient.

CollectionUtil 
Utility class to create Collection instances.

ColorRefinementAlgorithm<V,E> 
Color refinement algorithm that finds the coarsest stable coloring of a graph based on a given
alpha coloring as described in the following
paper: C.

ColorRefinementIsomorphismInspector<V,E> 

ComplementGraphGenerator<V,E> 

CompleteBipartiteGraphGenerator<V,E> 

CompleteGraphDemo 
Demonstrates how to create a complete graph and perform a depth first search on it.

CompleteGraphGenerator<V,E> 
Generates a complete graph of any size.

ConnectedComponentTraversalEvent 
A traversal event with respect to a connected component.

ConnectivityInspector<V,E> 
Allows obtaining various connectivity aspects of a graph.

ContractionHierarchyBidirectionalDijkstra<V,E> 
Implementation of the hierarchical query algorithm based on the bidirectional Dijkstra search.

ContractionHierarchyPrecomputation<V,E> 

ContractionHierarchyPrecomputation.ContractionEdge<E1> 
Edge for building the contraction hierarchy.

ContractionHierarchyPrecomputation.ContractionHierarchy<V,E> 
Return type of this algorithm.

ContractionHierarchyPrecomputation.ContractionVertex<V1> 
Vertex for building the contraction hierarchy, which contains an original vertex from
graph .

Coreness<V,E> 
Computes the coreness of each vertex in an undirected graph.

CrossComponentIterator<V,E,D> 
Provides a crossconnectedcomponent traversal functionality for iterator subclasses.

CSVEventDrivenImporter 
Imports a graph from a CSV Format or any other Delimiterseparated value format.

CSVExporter<V,E> 
Exports a graph into a CSV Format or any other Delimiterseparated value format.

CSVFormat 
Supported CSV formats.

CSVFormat.Parameter 
Parameters that affect the behavior of CVS importers/exporters.

CSVImporter<V,E> 
Imports a graph from a CSV Format or any other Delimiterseparated value format.

CycleBasisAlgorithm<V,E> 
Allows to derive an undirected cycle
basis of a given graph.

CycleBasisAlgorithm.CycleBasis<V,E> 
An undirected cycle basis.

CycleBasisAlgorithm.CycleBasisImpl<V,E> 
Default implementation of the undirected cycle basis interface.

CycleDetector<V,E> 
Performs cycle detection on a graph.

Cycles 
Collection of helper methods related to cycles.

DefaultAttribute<T> 
Default implementation of an attribute.

DefaultDirectedGraph<V,E> 
The default implementation of a directed graph.

DefaultDirectedWeightedGraph<V,E> 
The default implementation of a directed weighted graph.

DefaultEdge 
A default implementation for edges in a Graph .

DefaultEdgeFunction<E,T> 
Default implementation of an edge function which uses a map to store values.

DefaultGraphMapping<V,E> 
Implementation of the GraphMapping interface.

DefaultGraphSpecificsStrategy<V,E> 
A default lookup specifics strategy implementation.

DefaultGraphType 
Default implementation of the graph type.

DefaultGraphType.Builder 

DefaultListenableGraph<V,E> 
A graph backed by the the graph specified at the constructor, which can be listened by
GraphListener s and by
VertexSetListener s.

DefaultManyToManyShortestPaths<V,E> 
Naive algorithm for manytomany shortest paths problem using.

DefaultUndirectedGraph<V,E> 
The default implementation of an undirected graph.

DefaultUndirectedWeightedGraph<V,E> 
The default implementation of an undirected weighted graph.

DefaultWeightedEdge 
A default implementation for edges in a weighted graph.

DegeneracyBronKerboschCliqueFinder<V,E> 
BronKerbosch maximal clique enumeration algorithm with pivot and degeneracy ordering.

DegeneracyOrderingIterator<V,E> 
A degeneracy ordering iterator.

DeltaSteppingShortestPath<V,E> 
Parallel implementation of a singlesource shortest path algorithm: the deltastepping algorithm.

DenseEdmondsMaximumCardinalityMatching<V,E> 
This implementation of Edmonds' blossom algorithm computes maximum cardinality matchings in
undirected graphs.

DependencyDemo 
This class is a demonstration program for creating a dependency chart, directed graph, then
locating and outputting any implicit loops, cycles.

DepthFirstIterator<V,E> 
A depthfirst iterator for a directed or undirected graph.

DepthFirstIterator.VisitColor 
Standard vertex visit state enumeration.

DijkstraManyToManyShortestPaths<V,E> 
Naive algorithm for manytomany shortest paths problem using
DijkstraClosestFirstIterator .

DijkstraShortestPath<V,E> 

DIMACSEventDrivenImporter 
A generic importer using consumers for DIMACS format.

DIMACSExporter<V,E> 
Exports a graph into DIMACS format.

DIMACSExporter.Parameter 

DIMACSFormat 
DIMACS challenge format.

DIMACSImporter<V,E> 
Imports a graph specified in DIMACS format.

DinicMFImpl<V,E> 
Implementation of <a href = "https://en.wikipedia.org/wiki/Dinic%27s_algorithm">Dinic
algorithm</a> with scaling for
<a href = "https://en.wikipedia.org/wiki/Maximum_flow_problem"maximum"maximum flow
problem</a>.

DirectedAcyclicGraph<V,E> 
A directed acyclic graph (DAG).

DirectedAcyclicGraph.Region 
An inclusive range of indices: [start, finish].

DirectedAcyclicGraph.TopoOrderMap<V> 
An interface for storing the topological ordering.

DirectedAcyclicGraph.TopoVertexBiMap<V> 
A dual map implementation of the topological order map.

DirectedAcyclicGraph.VisitedArrayImpl 
A visited strategy using an array.

DirectedAcyclicGraph.VisitedArrayListImpl 
A visited strategy using an ArrayList .

DirectedAcyclicGraph.VisitedBitSetImpl 
A visited strategy which uses a BitSet .

DirectedAcyclicGraph.VisitedHashSetImpl 
A visited strategy using a HashSet .

DirectedAcyclicGraph.VisitedStrategy 
A strategy for marking vertices as visited.

DirectedAcyclicGraph.VisitedStrategyFactory 
A visited strategy factory.

DirectedEdgeContainer<V,E> 
A container for vertex edges.

DirectedGraphDemo 
This class demonstrates some of the operations that can be performed on directed graphs.

DirectedMultigraph<V,E> 
A directed multigraph.

DirectedPseudograph<V,E> 
A directed pseudograph.

DirectedScaleFreeGraphGenerator<V,E> 
A generator for directed scalefree graphs.

DirectedSimpleCycles<V,E> 
A common interface for classes implementing algorithms for enumeration of the simple cycles of a
directed graph.

DirectedSpecifics<V,E> 
Plain implementation of DirectedSpecifics.

DirectedWeightedMultigraph<V,E> 
A directed weighted multigraph.

DirectedWeightedPseudograph<V,E> 
A directed weighted pseudograph.

DOTEventDrivenImporter 
Import a graph from a DOT file.

DOTExporter<V,E> 
Exports a graph into a DOT file.

DOTImporter<V,E> 
Import a graph from a DOT file.

DoublyLinkedList<E> 
DoublyLinkedList implements a doubly linked List data structure, that exposes its
ListNodes where the data is stored in.

DoublyLinkedList.ListNode<V> 

DoublyLinkedList.ListNodeIterator<E> 

DoublyLinkedList.NodeIterator<E> 

DulmageMendelsohnDecomposition<V,E> 
This class computes a DulmageMendelsohn Decomposition of a bipartite graph.

DulmageMendelsohnDecomposition.Decomposition<V,E> 
The output of a decomposition operation

EdgeBasedTwoApproxVCImpl<V,E> 
Finds a 2approximation for a minimum vertex cover A vertex cover is a set of vertices that
touches all the edges in the graph.

EdgeReversedGraph<V,E> 
Provides an edgereversed view $g'$ of a directed graph $g$.

EdgeSetFactory<V,E> 
A factory for edge sets.

EdgeTraversalEvent<E> 
A traversal event for a graph edge.

EdmondsKarpMFImpl<V,E> 

EmptyGraphGenerator<V,E> 

EppsteinKShortestPath<V,E> 
Implementation of the Eppstein`s algorithm for finding $k$ shortest path between two vertices in
a graph.

EppsteinShortestPathIterator<V,E> 
Iterator over the shortest paths (not required to be simple) between two vertices in a graph
sorted by weight.

EsauWilliamsCapacitatedMinimumSpanningTree<V,E> 
Implementation of a randomized version of the EsauWilliams heuristic, a greedy randomized
adaptive search heuristic (GRASP) for the capacitated minimum spanning tree (CMST) problem.

EulerianCycleAlgorithm<V,E> 
Computes an Eulerian cycle of an Eulerian graph.

EulerTourRMQLCAFinder<V,E> 
Algorithm for computing lowest common ancestors in rooted trees and forests based on Berkman,
Omer; Vishkin, Uzi (1993), "Recursive StarTree Parallel Data Structure", SIAM Journal on
Computing, 22 (2): 221–242, doi:10.1137/0222017.

EventDrivenImporter<V,E> 
Interface for an importer using consumers.

ExportException 
An exception that the library throws in case of graph export errors.

Extension 
Class which represents an abstract extension/encapsulation object.

ExtensionFactory<B extends Extension> 
Factory class which creates extension/encapsulation objects

ExtensionManager<T,B extends Extension> 
Convenience class to manage extensions/encapsulations.

FastLookupDirectedSpecifics<V,E> 
Fast implementation of DirectedSpecifics.

FastLookupGraphSpecificsStrategy<V,E> 
The fast lookup specifics strategy implementation.

FastLookupUndirectedSpecifics<V,E> 
Fast implementation of UndirectedSpecifics.

FastutilFastLookupGSS<V,E> 
The fast lookup specifics strategy implementation using fastutil maps for storage..

FastutilFastLookupIntVertexGSS<E> 
A specifics strategy implementation using fastutil maps for storage specialized for integer
vertices.

FastutilGSS<V,E> 
A specifics strategy implementation using fastutil maps for storage.

FastutilIntVertexGSS<E> 
A specifics strategy implementation using fastutil maps for storage specialized for integer
vertices.

FastutilMapGraph<V,E> 
A graph implementation using fastutil's map implementations for storage.

FastutilMapIntVertexGraph<E> 
A graph implementation using fastutil's map implementations for storage specialized
for integer vertices.

FixedSizeIntegerQueue 
Primitive but efficient implementation of a fixed size queue for integers.

FlowAlgorithm<V,E> 
Interface for flow algorithms

FlowAlgorithm.Flow<E> 
Represents a flow.

FlowAlgorithm.FlowImpl<E> 

FloydWarshallShortestPaths<V,E> 
The FloydWarshall algorithm.

FRLayoutAlgorithm2D<V,E> 
Fruchterman and Reingold ForceDirected Placement Algorithm.

FRLayoutAlgorithm2D.TemperatureModel 
A general interface for a temperature model.

GabowStrongConnectivityInspector<V,E> 
Computes the strongly connected components of a directed graph.

GeneralizedPetersenGraphGenerator<V,E> 
Generator for Generalized
Petersen Graphs The Generalized Petersen graphs $GP(n,k)$ are a family of cubic graphs formed
by connecting the vertices of a regular polygon (cycle graph $C_n$) to the corresponding vertices
of a star polygon ${n,k}$.

GEXFAttributeType 
Attribute types supported by GEXF.

GEXFExporter<V,E> 
Exports a graph as GEXF (Graph Exchange XML Format).

GEXFExporter.AttributeCategory 
Denotes the category of a GEXFAttribute.

GEXFExporter.Parameter 
Parameters that affect the behavior of the exporter.

GmlEventDrivenImporter 
Imports a graph from a GML file (Graph Modeling Language).

GmlExporter<V,E> 
Exports a graph into a GML file (Graph Modeling Language).

GmlExporter.Parameter 
Parameters that affect the behavior of the GmlExporter exporter.

GmlImporter<V,E> 
Imports a graph from a GML file (Graph Modeling Language).

GnmRandomBipartiteGraphGenerator<V,E> 
Create a random bipartite graph based on the $G(n, M)$ Erdős–Rényi model.

GnmRandomGraphGenerator<V,E> 
Create a random graph based on the $G(n, M)$ Erdős–Rényi model.

GnpRandomBipartiteGraphGenerator<V,E> 
Create a random bipartite graph based on the $G(n, p)$ Erdős–Rényi model.

GnpRandomGraphGenerator<V,E> 
Create a random graph based on the $G(n, p)$ Erdős–Rényi model.

GoldbergMaximumDensitySubgraphAlgorithm<V,E> 
This class computes a maximum density subgraph based on the algorithm described by Andrew
Vladislav Goldberg in
Finding Maximum Density Subgraphs, 1984, University of Berkley.

GoldbergMaximumDensitySubgraphAlgorithmBase<V,E> 
This abstract base class computes a maximum density subgraph based on the algorithm described by
Andrew Vladislav Goldberg in
Finding Maximum
Density Subgraphs, 1984, University of Berkley.

GoldbergMaximumDensitySubgraphAlgorithmNodeWeightPerEdgeWeight<V extends Pair<?,java.lang.Double>,E> 
This class computes a maximum density subgraph based on the algorithm described by Andrew
Vladislav Goldberg in
Finding Maximum Density Subgraphs, 1984, University of Berkley.

GoldbergMaximumDensitySubgraphAlgorithmNodeWeights<V extends Pair<?,java.lang.Double>,E> 
This class computes a maximum density subgraph based on the algorithm described by Andrew
Vladislav Goldberg in
Finding Maximum Density Subgraphs, 1984, University of Berkley.

Graph<V,E> 
The root interface in the graph hierarchy.

Graph6Sparse6EventDrivenImporter 
Importer which reads graphs in graph6 or sparse6 format.

Graph6Sparse6Exporter<V,E> 
Exporter which exports graphs in graph6 or sparse6 format.

Graph6Sparse6Exporter.Format 
Format type: graph6 (g6) or sparse6(s6)

Graph6Sparse6Importer<V,E> 
Importer which reads graphs in graph6 or sparse6 format.

GraphBuilder<V,E,G extends Graph<V,E>> 
A builder class for Graph .

GraphBuilderDemo 

GraphChangeEvent 
An event which indicates that a graph has changed.

GraphDelegator<V,E> 
A graph backed by the the graph specified at the constructor, which delegates all its methods to
the backing graph.

GraphEdgeChangeEvent<V,E> 
An event which indicates that a graph edge has changed, or is about to change.

GraphExporter<V,E> 
Interface for graph exporters

GraphGenerator<V,E,T> 
An interface for generating new graph structures.

GraphImporter<V,E> 
Interface for graph importers

GraphIterator<V,E> 
A graph iterator.

GraphListener<V,E> 
A listener that is notified when the graph changes.

GraphMapping<V,E> 
GraphMapping represents a bidirectional mapping between two graphs (called graph1 and graph2),
which allows the caller to obtain the matching vertex or edge in either direction, from graph1 to
graph2, or from graph2 to graph1.

GraphMeasurer<V,E> 
Algorithm class which computes a number of distance related metrics.

GraphMetrics 
Collection of methods which provide numerical graph information.

GraphMLDemo 
This class demonstrates exporting and importing a graph with custom vertex and edge attributes in
GraphML.

GraphMLEventDrivenImporter 
Imports a graph from a GraphML data source.

GraphMLExporter<V,E> 
Exports a graph as GraphML.

GraphMLExporter.AttributeCategory 
Denotes the category of a GraphMLAttribute.

GraphMLImporter<V,E> 
Imports a graph from a GraphML data source.

GraphPath<V,E> 

Graphs 
A collection of utilities to assist with graph manipulation.

GraphSpecificsStrategy<V,E> 
A graph specifics construction factory.

GraphTests 
A collection of utilities to test for various graph properties.

GraphType 
A graph type.

GraphTypeBuilder<V,E> 
A builder class for the hierarchy of Graph s that the library provides.

GraphVertexChangeEvent<V> 
An event which indicates that a graph vertex has changed, or is about to change.

GraphWalk<V,E> 
A walk in a graph is an alternating sequence of vertices and edges, starting and ending at a
vertex, in which each edge is adjacent in the sequence to its two endpoints.

GreedyColoring<V,E> 
The greedy coloring algorithm.

GreedyHeuristicTSP<V,E> 
The greedy heuristic algorithm for the TSP problem.

GreedyMaximumCardinalityMatching<V,E> 
The greedy algorithm for computing a maximum cardinality matching.

GreedyMultiplicativeSpanner<V,E> 
Greedy algorithm for $(2k1)$multiplicative spanner construction (for any integer
k >= 1).

GreedyVCImpl<V,E> 
Greedy algorithm to find a vertex cover for a graph.

GreedyWeightedMatching<V,E> 
The greedy algorithm for computing a maximum weight matching in an arbitrary graph.

GridGraphGenerator<V,E> 

GusfieldEquivalentFlowTree<V,E> 
This class computes an Equivalent Flow Tree (EFT) using the algorithm proposed by Dan Gusfield.

GusfieldGomoryHuCutTree<V,E> 
This class computes a GomoryHu tree (GHT) using the algorithm proposed by Dan Gusfield.

HamiltonianCycleAlgorithm<V,E> 

HamiltonianCycleAlgorithmBase<V,E> 
Base class for TSP solver algorithms.

HamiltonianCycleImprovementAlgorithm<V,E> 

HarmonicCentrality<V,E> 
Harmonic centrality.

HawickJamesSimpleCycles<V,E> 
Find all simple cycles of a directed graph using the algorithm described by Hawick and James.

HeavyPathDecomposition<V,E> 
Algorithm for computing the heavy path decomposition of a rooted tree/forest.

HeavyPathLCAFinder<V,E> 

HeldKarpTSP<V,E> 
A dynamic programming algorithm for the TSP problem.

HelloJGraphT 
A simple introduction to using JGraphT.

HierholzerEulerianCycle<V,E> 
An implementation of Hierholzer's algorithm for finding an Eulerian cycle in Eulerian graphs.

HopcroftKarpMaximumCardinalityBipartiteMatching<V,E> 
Implementation of the wellknown Hopcroft Karp algorithm to compute a matching of maximum
cardinality in a bipartite graph.

HyperCubeGraphGenerator<V,E> 

ImmutableDoubleValueGraphAdapter<V> 
A graph adapter class using Guava's ImmutableValueGraph specialized with double values.

ImmutableGraphAdapter<V> 
A graph adapter class using Guava's ImmutableGraph .

ImmutableNetworkAdapter<V,E> 
A graph adapter class using Guava's ImmutableNetwork .

ImmutableValueGraphAdapter<V,W> 
A graph adapter class using Guava's ImmutableValueGraph .

ImportEvent 
Special events which may happen during import.

ImportException 
An exception that the library throws in case of graph import errors.

IndependentSetAlgorithm<V> 

IndependentSetAlgorithm.IndependentSet<V> 

IndependentSetAlgorithm.IndependentSetImpl<V> 
Default implementation of a (weighted) independent set

IndexedFRLayoutAlgorithm2D<V,E> 
Fruchterman and Reingold ForceDirected Placement Algorithm using the
BarnesHut indexing
technique with a QuadTree.

IntegerIdProvider<T> 
Assign a unique integer identifier to a set of elements.

IntrusiveEdgesSpecifics<V,E> 
An interface for the set of intrusive edges of a graph.

IntVertexDijkstraShortestPath<E> 
Dijkstra Shortest Path implementation specialized for graphs with integer vertices.

IsomorphicGraphMapping<V,E> 
This class represents a GraphMapping between two (subgraph)isomorphic graphs.

IsomorphismInspector<V,E> 
General interface for graph and subgraph isomorphism.

IsomorphismUndecidableException 
Implementation of IsomorphismUndecidableException to indicate undecidable isomorphism cases in
isomorphism inspectors

JGraphXAdapter<V,E> 
Adapter to draw a JGraphT graph with the JGraphX drawing library.

JGraphXAdapterDemo 
A demo applet that shows how to use JGraphX to visualize JGraphT graphs.

JohnsonShortestPaths<V,E> 
Johnson's all pairs shortest paths algorithm.

JohnsonSimpleCycles<V,E> 
Find all simple cycles of a directed graph using the Johnson's algorithm.

JSONEventDrivenImporter 
Imports a graph from a JSON file.

JSONExporter<V,E> 
Exports a graph using JSON.

JSONImporter<V,E> 
Imports a graph from a JSON file.

KleinbergSmallWorldGraphGenerator<V,E> 
Kleinberg's smallworld graph generator.

KolmogorovWeightedMatching<V,E> 
This class computes weighted matchings in general graphs.

KolmogorovWeightedPerfectMatching<V,E> 
This class computes weighted perfect matchings in general graphs using the Blossom V algorithm.

KolmogorovWeightedPerfectMatching.DualSolution<V,E> 
A solution to the dual linear program formulated on the graph

KolmogorovWeightedPerfectMatching.Statistics 
Describes the performance characteristics of the algorithm and numeric data about the number
of performed dual operations during the main phase of the algorithm

KosarajuStrongConnectivityInspector<V,E> 
Computes strongly connected components of a directed graph.

KruskalMinimumSpanningTree<V,E> 

KShortestPathAlgorithm<V,E> 
An algorithm which computes $k$shortest paths between vertices.

KShortestSimplePaths<V,E> 
Deprecated.

KSpanningTreeClustering<V,E> 
The k spanning tree clustering algorithm.

KuhnMunkresMinimalWeightBipartitePerfectMatching<V,E> 
KuhnMunkres algorithm (named in honor of Harold Kuhn and James Munkres) solving assignment
problem also known as hungarian
algorithm (in the honor of hungarian mathematicians Dénes K?nig and Jen? Egerváry).

LabeledEdges 
An example of how to apply edge labels using a custom edge class.

LabelPropagationClustering<V,E> 
A label propagation clustering algorithm.

LargestDegreeFirstColoring<V,E> 
The largest degree first greedy coloring algorithm.

LayoutAlgorithm2D<V,E> 
A general interface for a layout 2D algorithm.

LayoutModel2D<V> 
A general interface for the 2D layout model.

LemonExporter<V,E> 
Exports a graph into Lemon graph format (LGF).

LemonExporter.Parameter 
Parameters that affect the behavior of the LemonExporter exporter.

LexBreadthFirstIterator<V,E> 
A lexicographical breadthfirst iterator for an undirected graph.

LinearGraphGenerator<V,E> 
Generates a linear graph of any size.

LinearizedChordDiagramGraphGenerator<V,E> 
The linearized chord diagram graph model generator.

LineGraphConverter<V,E,EE> 
Converter which produces the line graph
of a given input graph.

ListenableGraph<V,E> 
A graph that supports listeners on structural change events.

ListenableLayoutModel2D<V> 
A layout model wrapper which adds support for listeners.

ListMultiObjectiveSingleSourcePathsImpl<V,E> 

ListSingleSourcePathsImpl<V,E> 

LowestCommonAncestorAlgorithm<V> 

ManyToManyShortestPathsAlgorithm<V,E> 
An algorithm which computes shortest paths from all sources to all targets.

ManyToManyShortestPathsAlgorithm.BaseManyToManyShortestPathsImpl<V,E> 
Base class for manytomany shortest paths implementations.

ManyToManyShortestPathsAlgorithm.ManyToManyShortestPaths<V,E> 
A set of paths from all sources vertices to all target vertices.

MapLayoutModel2D<V> 
A layout model which uses a hashtable to store the vertices' locations.

MartinShortestPath<V,E> 
Martin's algorithm for the multiobjective shortest paths problem.

MaskSubgraph<V,E> 
An unmodifiable subgraph induced by a vertex/edge masking function.

MatchingAlgorithm<V,E> 
Allows to derive a matching of
a given graph.

MatchingAlgorithm.Matching<V,E> 
A graph matching.

MatchingAlgorithm.MatchingImpl<V,E> 
A default implementation of the matching interface.

MathUtil 
Math Utilities.

MatrixExporter<V,E> 
Exports a graph to a plain text matrix format, which can be processed by matrix manipulation
software, such as MTJ or
MATLAB.

MatrixExporter.Format 

MaximalCliqueEnumerationAlgorithm<V,E> 
A maximal clique enumeration algorithm.

MaximumCardinalityIterator<V,E> 
A maximum cardinality search iterator for an undirected graph.

MaximumDensitySubgraphAlgorithm<V,E> 
Interface for algorithms computing the maximum density subgraph

MaximumFlowAlgorithm<V,E> 

MaximumFlowAlgorithm.MaximumFlow<E> 
A maximum flow

MaximumFlowAlgorithm.MaximumFlowImpl<E> 
Default implementation of the maximum flow

MaximumFlowAlgorithmBase<V,E> 

MaximumWeightBipartiteMatching<V,E> 
Maximum weight matching in bipartite graphs.

MinimumCostFlowAlgorithm<V,E> 

MinimumCostFlowAlgorithm.MinimumCostFlow<E> 
Represents a minimum cost flow.

MinimumCostFlowAlgorithm.MinimumCostFlowImpl<E> 

MinimumCostFlowProblem<V,E> 

MinimumCostFlowProblem.MinimumCostFlowProblemImpl<V,E> 
Default implementation of a Minimum Cost Flow Problem

MinimumSTCutAlgorithm<V,E> 
Given a weighted graph $G(V,E)$ (directed or undirected).

ModifiableInteger 
The ModifiableInteger class wraps a value of the primitive type int in
an object, similarly to Integer .

Multigraph<V,E> 
A multigraph.

MultiObjectiveShortestPathAlgorithm<V,E> 
An algorithm which computes multiobjective shortest paths between vertices.

MultiObjectiveShortestPathAlgorithm.MultiObjectiveSingleSourcePaths<V,E> 
A set of paths starting from a single source vertex.

MutableDoubleValueGraphAdapter<V> 
A graph adapter class using Guava's MutableValueGraph specialized with double values.

MutableGraphAdapter<V> 
A graph adapter class using Guava's MutableGraph .

MutableNetworkAdapter<V,E> 
A graph adapter class using Guava's MutableNetwork .

MutableValueGraphAdapter<V,W> 
A graph adapter class using Guava's MutableValueGraph .

NaiveLCAFinder<V,E> 
Find the Lowest Common Ancestor of a directed graph.

NamedGraphGenerator<V,E> 
Collection of commonly used named graphs

NearestInsertionHeuristicTSP<V,E> 
The nearest insertion heuristic algorithm for the TSP problem.

NearestNeighborHeuristicTSP<V,E> 
The nearest neighbour heuristic algorithm for the TSP problem.

NegativeCycleDetectedException 
An exception used to notify about the detection of a negative cycle.

NeighborCache<V,E> 
Maintains a cache of each vertex's neighbors.

ObjectiveSense 
Enum specifying the objective sense of the algorithm.

PadbergRaoOddMinimumCutset<V,E> 
Implementation of the algorithm by Padberg and Rao to compute Odd Minimum CutSets.

PageRank<V,E> 
PageRank implementation.

Pair<A,B> 
Generic pair.

PalmerHamiltonianCycle<V,E> 
Palmer's algorithm for computing Hamiltonian cycles in graphs that meet Ore's condition.

ParanoidGraph<V,E> 
ParanoidGraph provides a way to verify that objects added to a graph obey the standard
equals/hashCode contract.

ParberryKnightTour 
Implementation of <a href = "https://doi.org/10.1016/S0166218X(96)000108">
Parberry's algorithm</a> for
<a href = "https://en.wikipedia.org/wiki/Knight%27s_tour">closed knight's tour
problem</a>.

PartitioningAlgorithm<V> 
Algorithm to compute a vertex partitioning of a graph.

PartitioningAlgorithm.Partitioning<V> 

PartitioningAlgorithm.PartitioningImpl<V> 
Default implementation of a vertex partition

PathGrowingWeightedMatching<V,E> 
A linear time $\frac{1}{2}$approximation algorithm for finding a maximum weight matching in an
arbitrary graph.

PathValidator<V,E> 
May be used to provide external path validations in addition to the basic validations done by
KShortestSimplePaths  that the path is from source to target and that it does not
contain loops.

PatonCycleBase<V,E> 
Find a cycle basis of an undirected graph using a variant of Paton's algorithm.

PerformanceDemo 
A simple demo to test memory and CPU consumption on a graph with 3 million elements.

PivotBronKerboschCliqueFinder<V,E> 
BronKerbosch maximal clique enumeration algorithm with pivot.

PlanarityTestingAlgorithm<V,E> 
Allows to check the planarity of the graph.

PlanarityTestingAlgorithm.Embedding<V,E> 

PlanarityTestingAlgorithm.EmbeddingImpl<V,E> 

PlantedPartitionGraphGenerator<V,E> 
Create a random $l$planted partition graph.

Point2D 
A 2dimensional point in Euclidean space.

Points 
A collection of utilities to assist with point manipulation.

PrefetchIterator<E> 
Utility class to help implement an iterator/enumerator in which the hasNext() method needs to
calculate the next elements ahead of time.

PrefetchIterator.NextElementFunctor<EE> 
A functor for the calculation of the next element.

PrimMinimumSpanningTree<V,E> 
An implementation of Prim's
algorithm that finds a minimum spanning tree/forest subject to connectivity of the supplied
weighted undirected graph.

PruferTreeGenerator<V,E> 
Generates a random tree using Prüfer sequences.

Pseudograph<V,E> 
A pseudograph.

PushRelabelMFImpl<V,E> 

QueueBFSFundamentalCycleBasis<V,E> 
Generate a set of fundamental cycles by building a spanning tree (forest) using a straightforward
implementation of BFS using a FIFO queue.

RadixSort 
Sorts the specified list of integers into ascending order using the Radix Sort method.

RandomGreedyColoring<V,E> 
The greedy coloring algorithm with a random vertex ordering.

RandomLayoutAlgorithm2D<V,E> 
Random layout.

RandomRegularGraphGenerator<V,E> 
Generate a random $d$regular undirected graph with $n$ vertices.

RandomTourTSP<V,E> 
Generate a random tour.

RandomWalkIterator<V,E> 
A random walk iterator for a directed or undirected graph.

RatioVertex<V> 
Helper class for vertex covers.

RecursiveExactVCImpl<V,E> 
Finds a minimum vertex cover in a undirected graph.

RingGraphGenerator<V,E> 
Generates a ring graph of any size.

SaturationDegreeColoring<V,E> 
The Dsatur greedy coloring algorithm.

ScaleFreeGraphGenerator<V,E> 

ShortestPathAlgorithm<V,E> 
An algorithm which computes shortest paths between vertices.

ShortestPathAlgorithm.SingleSourcePaths<V,E> 
A set of paths starting from a single source vertex.

SimpleDirectedGraph<V,E> 
A simple directed graph.

SimpleDirectedWeightedGraph<V,E> 
A simple directed weighted graph.

SimpleGEXFEventDrivenImporter 
Imports a graph from a GEXF data source.

SimpleGEXFImporter<V,E> 
Imports a graph from a GEXF data source.

SimpleGraph<V,E> 

SimpleGraphMLEdgeListImporter 
Imports a GraphML file as an edge list.

SimpleGraphMLEventDrivenImporter 
Imports a graph from a GraphML data source.

SimpleGraphMLImporter<V,E> 
Imports a graph from a GraphML data source.

SimpleWeightedBipartiteGraphMatrixGenerator<V,E> 
A simple weighted bipartite graph matrix generator.

SimpleWeightedGraph<V,E> 
A simple weighted graph.

SimpleWeightedGraphMatrixGenerator<V,E> 
A simple weighted graph matrix generator.

SmallestDegreeLastColoring<V,E> 
The smallest degree last greedy coloring algorithm.

SpannerAlgorithm<E> 

SpannerAlgorithm.Spanner<E> 
A graph spanner.

SpannerAlgorithm.SpannerImpl<E> 
Default implementation of the spanner interface.

SpanningTreeAlgorithm<E> 
An algorithm which computes a spanning
tree of a given connected graph.

SpanningTreeAlgorithm.SpanningTree<E> 
A spanning tree.

SpanningTreeAlgorithm.SpanningTreeImpl<E> 
Default implementation of the spanning tree interface.

SparseEdmondsMaximumCardinalityMatching<V,E> 
Edmonds' blossom algorithm for maximum cardinality matching in general undirected graphs.

SparseIntDirectedGraph 
A sparse directed graph.

SparseIntDirectedWeightedGraph 
Sparse directed weighted graph.

SparseIntUndirectedGraph 
Sparse undirected graph.

SparseIntUndirectedWeightedGraph 
Sparse undirected weighted graph.

Specifics<V,E> 
An interface encapsulating the basic graph operations.

StackBFSFundamentalCycleBasis<V,E> 
Generate a set of fundamental cycles by building a spanning tree (forest) using an implementation
of BFS using a LIFO Stack.

StarGraphGenerator<V,E> 

StoerWagnerMinimumCut<V,E> 

StrongConnectivityAlgorithm<V,E> 
A strong connectivity inspector algorithm.

SupplierUtil 
Helper class for suppliers.

SuurballeKDisjointShortestPaths<V,E> 
An implementation of Suurballe algorithm for finding K edgedisjoint shortest paths.

SzwarcfiterLauerSimpleCycles<V,E> 
Find all simple cycles of a directed graph using the Schwarcfiter and Lauer's algorithm.

TarjanLCAFinder<V,E> 
Tarjan's offline algorithm for computing lowest common ancestors in rooted trees and forests.

TarjanSimpleCycles<V,E> 
Find all simple cycles of a directed graph using the Tarjan's algorithm.

TiernanSimpleCycles<V,E> 
Find all simple cycles of a directed graph using the Tiernan's algorithm.

ToleranceDoubleComparator 
A double comparator with adjustable tolerance.

TooManyFailuresException 
Raised when the generator fails, too many times in a row, to grow a graph.

TopologicalOrderIterator<V,E> 
A topological ordering iterator for a directed acyclic graph.

TransitiveClosure 
Constructs the transitive closure of the input graph.

TransitiveReduction 

TraversalListener<V,E> 
A listener on graph iterator or on a graph traverser.

TraversalListenerAdapter<V,E> 
An empty donothing implementation of the TraversalListener interface used for
subclasses.

TreeDynamicConnectivity<T> 
Data structure for storing dynamic trees and querying node connectivity

TreeMeasurer<V,E> 
Algorithm class which computes a number of distance related metrics for trees.

TreeSingleSourcePathsImpl<V,E> 

TreeToPathDecompositionAlgorithm<V,E> 
An algorithm which computes a decomposition into disjoint paths for a given tree/forest

TreeToPathDecompositionAlgorithm.PathDecomposition<V,E> 
A path decomposition.

TreeToPathDecompositionAlgorithm.PathDecompositionImpl<V,E> 
Default implementation of the path decomposition interface.

Triple<A,B,C> 
Generic triple (3tuple).

TSPLIBImporter<V,E> 
Importer for files in the
TSPLIB95 format.

TSPLIBImporter.Metadata<V,E> 
Container for the meta data of an imported TSPLIB95 file.

TSPLIBImporter.Node 
A node imported from the NODE_COORD_SECTION of a TSPLIB95file.

TSPLIBImporter.Specification 
Container for the entry values read from the specification part of a file in
TSPLIB95 format.

TwoApproxMetricTSP<V,E> 
A 2approximation algorithm for the metric TSP problem.

TwoOptHeuristicTSP<V,E> 
The 2opt heuristic algorithm for the TSP problem.

TypeUtil 
TypeUtil isolates typeunsafety so that code which uses it for legitimate reasons can stay
warningfree.

UndirectedEdgeContainer<V,E> 
A container for vertex edges.

UndirectedSpecifics<V,E> 
Plain implementation of UndirectedSpecifics.

UniformIntrusiveEdgesSpecifics<V,E> 
An uniform weights variant of the intrusive edges specifics.

UnionFind<T> 

UnmodifiableUnionSet<E> 
An unmodifiable live view of the union of two sets.

UnorderedPair<A,B> 
Generic unordered pair.

VertexColoringAlgorithm<V> 
An algorithm which computes a graph vertex coloring.

VertexColoringAlgorithm.Coloring<V> 
A coloring.

VertexColoringAlgorithm.ColoringImpl<V> 
Default implementation of the coloring interface.

VertexCoverAlgorithm<V> 

VertexCoverAlgorithm.VertexCover<V> 

VertexCoverAlgorithm.VertexCoverImpl<V> 
Default implementation of a (weighted) vertex cover

VertexDegreeComparator<V,E> 
Compares two vertices based on their degree.

VertexDegreeComparator.Order 
Order in which we sort the vertices: ascending vertex degree or descending vertex degree

VertexScoringAlgorithm<V,D> 
An interface for all algorithms which assign scores to vertices of a graph.

VertexSetListener<V> 
A listener that is notified when the graph's vertex set changes.

VertexToIntegerMapping<V> 
Helper class for building a onetoone mapping for a collection of vertices to the integer range
$[0, n)$ where $n$ is the number of vertices in the collection.

VertexTraversalEvent<V> 
A traversal event for a graph vertex.

VF2AbstractIsomorphismInspector<V,E> 

VF2GraphIsomorphismInspector<V,E> 

VF2SubgraphIsomorphismInspector<V,E> 
This is an implementation of the VF2 algorithm using its feature of detecting subgraph
isomorphism between two graphs as described in Cordella et al.

VisioExporter<V,E> 
Exports a graph to a CSV format that can be imported into MS Visio.

WarnsdorffRuleKnightTourHeuristic 
Implementation of <a href =
"https://en.wikipedia.org/wiki/Knight%27s_tour#Warnsdorf's_rule">Warnsdorff's
rule</a>  heuristic for finding a knight's tour on chessboards.

WattsStrogatzGraphGenerator<V,E> 
WattsStrogatz smallworld graph generator.

WeakChordalityInspector<V,E> 

WeightCombiner 
Binary operator for edge weights.

WeightedIntrusiveEdgesSpecifics<V,E> 
A weighted variant of the intrusive edges specifics.

WeightedMultigraph<V,E> 
A weighted multigraph.

WeightedPseudograph<V,E> 
A weighted pseudograph.

WeightedUnmodifiableSet<E> 
Implementation of a weighted, unmodifiable set.

WheelGraphGenerator<V,E> 

WindmillGraphsGenerator<V,E> 

WindmillGraphsGenerator.Mode 
WINDMILL and DUTCHWINDMILL Modes for the Constructor

YenKShortestPath<V,E> 
Implementation of Yen`s algorithm for finding $k$ shortest loopless paths.

YenShortestPathIterator<V,E> 
Iterator over the shortest loopless paths between two vertices in a graph sorted by weight.
