Package edu.uci.ics.jung.graph
Class UndirectedSparseGraph<V,E>
java.lang.Object
edu.uci.ics.jung.graph.AbstractGraph<V,E>
edu.uci.ics.jung.graph.AbstractTypedGraph<V,E>
edu.uci.ics.jung.graph.UndirectedSparseGraph<V,E>
- All Implemented Interfaces:
Graph<V,,E> Hypergraph<V,,E> UndirectedGraph<V,,E> Serializable
public class UndirectedSparseGraph<V,E>
extends AbstractTypedGraph<V,E>
implements UndirectedGraph<V,E>
An implementation of
UndirectedGraph that is suitable
for sparse graphs.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionFields inherited from class edu.uci.ics.jung.graph.AbstractTypedGraph
edge_type -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanAddsedgeto this graph with the specifiedendpointsandEdgeType.booleanAddsvertexto this graph.booleancontainsEdge(E edge) Returns true if this graph's edge collection containsedge.booleancontainsVertex(V vertex) Returns true if this graph's vertex collection containsvertex.Returns an edge that connects this vertex tov.findEdgeSet(V v1, V v2) Returns all edges that connects this vertex tov.Ifdirected_edgeis a directed edge in this graph, returns the destination; otherwise returnsnull.intReturns the number of edges in this graph.getEdges()Returns a view of all edges in this graph.getEndpoints(E edge) Returns the endpoints ofedgeas aPair.static <V,E> com.google.common.base.Supplier <UndirectedGraph<V, E>> getIncidentEdges(V vertex) Returns the collection of edges in this graph which are connected tovertex.getInEdges(V vertex) Returns aCollectionview of the incoming edges incident tovertexin this graph.getNeighbors(V vertex) Returns the collection of vertices which are connected tovertexvia any edges in this graph.getOutEdges(V vertex) Returns aCollectionview of the outgoing edges incident tovertexin this graph.getPredecessors(V vertex) Returns aCollectionview of the predecessors ofvertexin this graph.Ifdirected_edgeis a directed edge in this graph, returns the source; otherwise returnsnull.getSuccessors(V vertex) Returns aCollectionview of the successors ofvertexin this graph.intReturns the number of vertices in this graph.Returns a view of all vertices in this graph.booleanReturnstrueifvertexis the destination ofedge.booleanReturnstrueifvertexis the source ofedge.booleanremoveEdge(E edge) Removesedgefrom this graph.booleanremoveVertex(V vertex) Removesvertexfrom this graph.Methods inherited from class edu.uci.ics.jung.graph.AbstractTypedGraph
getDefaultEdgeType, getEdgeCount, getEdges, getEdgeType, hasEqualEdgeType, validateEdgeTypeMethods inherited from class edu.uci.ics.jung.graph.AbstractGraph
addEdge, addEdge, addEdge, addEdge, addEdge, degree, getIncidentCount, getIncidentVertices, getNeighborCount, getOpposite, getPredecessorCount, getSuccessorCount, getValidatedEndpoints, inDegree, isIncident, isNeighbor, isPredecessor, isSuccessor, outDegree, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface edu.uci.ics.jung.graph.Graph
addEdge, addEdge, getOpposite, getPredecessorCount, getSuccessorCount, inDegree, isPredecessor, isSuccessor, outDegreeMethods inherited from interface edu.uci.ics.jung.graph.Hypergraph
addEdge, addEdge, degree, getDefaultEdgeType, getEdgeCount, getEdges, getEdgeType, getIncidentCount, getIncidentVertices, getNeighborCount, isIncident, isNeighbor
-
Field Details
-
vertices
-
edges
-
-
Constructor Details
-
UndirectedSparseGraph
public UndirectedSparseGraph()Creates an instance.
-
-
Method Details
-
getFactory
- Type Parameters:
V- the vertex type for the graph SupplierE- the edge type for the graph Supplier- Returns:
- a
Supplierthat creates an instance of this graph type.
-
addEdge
Description copied from class:AbstractGraphAddsedgeto this graph with the specifiedendpointsandEdgeType.- Specified by:
addEdgein classAbstractGraph<V,E> - Parameters:
edge- the edge to be addedendpoints- the endpoints to be connected to this edgeedgeType- the type of edge to add- Returns:
- true iff the graph was modified as a result of this call
-
getInEdges
Description copied from interface:GraphReturns aCollectionview of the incoming edges incident tovertexin this graph.- Specified by:
getInEdgesin interfaceGraph<V,E> - Specified by:
getInEdgesin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose incoming edges are to be returned- Returns:
- a
Collectionview of the incoming edges incident tovertexin this graph
-
getOutEdges
Description copied from interface:GraphReturns aCollectionview of the outgoing edges incident tovertexin this graph.- Specified by:
getOutEdgesin interfaceGraph<V,E> - Specified by:
getOutEdgesin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose outgoing edges are to be returned- Returns:
- a
Collectionview of the outgoing edges incident tovertexin this graph
-
getPredecessors
Description copied from interface:GraphReturns aCollectionview of the predecessors ofvertexin this graph. A predecessor ofvertexis defined as a vertexvwhich is connected tovertexby an edgee, whereeis an outgoing edge ofvand an incoming edge ofvertex.- Specified by:
getPredecessorsin interfaceGraph<V,E> - Specified by:
getPredecessorsin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose predecessors are to be returned- Returns:
- a
Collectionview of the predecessors ofvertexin this graph
-
getSuccessors
Description copied from interface:GraphReturns aCollectionview of the successors ofvertexin this graph. A successor ofvertexis defined as a vertexvwhich is connected tovertexby an edgee, whereeis an incoming edge ofvand an outgoing edge ofvertex.- Specified by:
getSuccessorsin interfaceGraph<V,E> - Specified by:
getSuccessorsin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose predecessors are to be returned- Returns:
- a
Collectionview of the successors ofvertexin this graph
-
findEdge
Description copied from interface:HypergraphReturns an edge that connects this vertex tov. If this edge is not uniquely defined (that is, if the graph contains more than one edge connectingv1tov2), any of these edges may be returned.findEdgeSet(v1, v2)may be used to return all such edges. Returns null if either of the following is true:v2is not connected tov1- either
v1orv2are not present in this graph
Note: for purposes of this method,
v1is only considered to be connected tov2via a given directed edgeeifv1 == e.getSource() && v2 == e.getDest()evaluates totrue. (v1andv2are connected by an undirected edgeuifuis incident to bothv1andv2.)- Specified by:
findEdgein interfaceHypergraph<V,E> - Overrides:
findEdgein classAbstractGraph<V,E> - Parameters:
v1- the first endpoint of the returned edgev2- the second endpoint of the returned edge- Returns:
- an edge that connects
v1tov2, ornullif no such edge exists (or either vertex is not present) - See Also:
-
findEdgeSet
Description copied from interface:HypergraphReturns all edges that connects this vertex tov. If this edge is not uniquely defined (that is, if the graph contains more than one edge connectingv1tov2), any of these edges may be returned.findEdgeSet(v1, v2)may be used to return all such edges. Returns null ifv2is not connected tov1.
Returns an empty collection if eitherv1orv2are not present in this graph.Note: for purposes of this method,
v1is only considered to be connected tov2via a given directed edgedifv1 == d.getSource() && v2 == d.getDest()evaluates totrue. (v1andv2are connected by an undirected edgeuifuis incident to bothv1andv2.)- Specified by:
findEdgeSetin interfaceHypergraph<V,E> - Overrides:
findEdgeSetin classAbstractGraph<V,E> - Parameters:
v1- the first endpoint of the returned edge setv2- the second endpoint of the returned edge set- Returns:
- a collection containing all edges that connect
v1tov2, ornullif either vertex is not present - See Also:
-
getEndpoints
Description copied from interface:GraphReturns the endpoints ofedgeas aPair.- Specified by:
getEndpointsin interfaceGraph<V,E> - Parameters:
edge- the edge whose endpoints are to be returned- Returns:
- the endpoints (incident vertices) of
edge
-
getSource
Description copied from interface:GraphIfdirected_edgeis a directed edge in this graph, returns the source; otherwise returnsnull. The source of a directed edgedis defined to be the vertex for whichdis an outgoing edge.directed_edgeis guaranteed to be a directed edge if itsEdgeTypeisDIRECTED. -
getDest
Description copied from interface:GraphIfdirected_edgeis a directed edge in this graph, returns the destination; otherwise returnsnull. The destination of a directed edgedis defined to be the vertex incident todfor whichdis an incoming edge.directed_edgeis guaranteed to be a directed edge if itsEdgeTypeisDIRECTED. -
isSource
Description copied from interface:GraphReturnstrueifvertexis the source ofedge. Equivalent togetSource(edge).equals(vertex). -
isDest
Description copied from interface:GraphReturnstrueifvertexis the destination ofedge. Equivalent togetDest(edge).equals(vertex). -
getEdges
Description copied from interface:HypergraphReturns a view of all edges in this graph. In general, this obeys theCollectioncontract, and therefore makes no guarantees about the ordering of the vertices within the set.- Specified by:
getEdgesin interfaceHypergraph<V,E> - Returns:
- a
Collectionview of all edges in this graph
-
getVertices
Description copied from interface:HypergraphReturns a view of all vertices in this graph. In general, this obeys theCollectioncontract, and therefore makes no guarantees about the ordering of the vertices within the set.- Specified by:
getVerticesin interfaceHypergraph<V,E> - Returns:
- a
Collectionview of all vertices in this graph
-
containsVertex
Description copied from interface:HypergraphReturns true if this graph's vertex collection containsvertex. Equivalent togetVertices().contains(vertex).- Specified by:
containsVertexin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose presence is being queried- Returns:
- true iff this graph contains a vertex
vertex
-
containsEdge
Description copied from interface:HypergraphReturns true if this graph's edge collection containsedge. Equivalent togetEdges().contains(edge).- Specified by:
containsEdgein interfaceHypergraph<V,E> - Parameters:
edge- the edge whose presence is being queried- Returns:
- true iff this graph contains an edge
edge
-
getEdgeCount
public int getEdgeCount()Description copied from interface:HypergraphReturns the number of edges in this graph.- Specified by:
getEdgeCountin interfaceHypergraph<V,E> - Returns:
- the number of edges in this graph
-
getVertexCount
public int getVertexCount()Description copied from interface:HypergraphReturns the number of vertices in this graph.- Specified by:
getVertexCountin interfaceHypergraph<V,E> - Returns:
- the number of vertices in this graph
-
getNeighbors
Description copied from interface:HypergraphReturns the collection of vertices which are connected tovertexvia any edges in this graph. Ifvertexis connected to itself with a self-loop, then it will be included in the collection returned.- Specified by:
getNeighborsin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose neighbors are to be returned- Returns:
- the collection of vertices which are connected to
vertex, ornullifvertexis not present
-
getIncidentEdges
Description copied from interface:HypergraphReturns the collection of edges in this graph which are connected tovertex.- Specified by:
getIncidentEdgesin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex whose incident edges are to be returned- Returns:
- the collection of edges which are connected to
vertex, ornullifvertexis not present
-
addVertex
Description copied from interface:HypergraphAddsvertexto this graph. Fails ifvertexis null or already in the graph.- Specified by:
addVertexin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex to add- Returns:
trueif the add is successful, andfalseotherwise
-
removeVertex
Description copied from interface:HypergraphRemovesvertexfrom this graph. As a side effect, removes any edgeseincident tovertexif the removal ofvertexwould causeeto be incident to an illegal number of vertices. (Thus, for example, incident hyperedges are not removed, but incident edges--which must be connected to a vertex at both endpoints--are removed.)Fails under the following circumstances:
vertexis not an element of this graphvertexisnull
- Specified by:
removeVertexin interfaceHypergraph<V,E> - Parameters:
vertex- the vertex to remove- Returns:
trueif the removal is successful,falseotherwise
-
removeEdge
Description copied from interface:HypergraphRemovesedgefrom this graph. Fails ifedgeis null, or is otherwise not an element of this graph.- Specified by:
removeEdgein interfaceHypergraph<V,E> - Parameters:
edge- the edge to remove- Returns:
trueif the removal is successful,falseotherwise
-