|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jgrapht.graph.AbstractGraph<V,E>
org.jgrapht.graph.GraphDelegator<V,E>
org.jgrapht.graph.EdgeReversedGraph<V,E>
public class EdgeReversedGraph<V,E>
Provides an edge-reversed view g' of a directed graph g. The vertex sets for the two graphs are the same, but g' contains an edge (v2, v1) iff g contains an edge (v1, v2). g' is backed by g, so changes to g are reflected in g', and vice versa.
This class allows you to use a directed graph algorithm in reverse. For
example, suppose you have a directed graph representing a tree, with edges
from parent to child, and you want to find all of the parents of a node. To
do this, simply create an edge-reversed graph and pass that as input to
DepthFirstIterator
.
AsUndirectedGraph
,
Serialized FormConstructor Summary | |
---|---|
EdgeReversedGraph(DirectedGraph<V,E> g)
Creates a new EdgeReversedGraph. |
Method Summary | |
---|---|
E |
addEdge(V sourceVertex,
V targetVertex)
Creates a new edge in this graph, going from the source vertex to the target vertex, and returns the created edge. |
boolean |
addEdge(V sourceVertex,
V targetVertex,
E e)
Adds the specified edge to this graph, going from the source vertex to the target vertex. |
E |
getEdge(V sourceVertex,
V targetVertex)
Returns an edge connecting source vertex to target vertex if such vertices and such edge exist in this graph. |
V |
getEdgeSource(E e)
Returns the source vertex of an edge. |
V |
getEdgeTarget(E e)
Returns the target vertex of an edge. |
java.util.Set<E> |
incomingEdgesOf(V vertex)
Returns a set of all edges incoming into the specified vertex. |
int |
inDegreeOf(V vertex)
Returns the "in degree" of the specified vertex. |
int |
outDegreeOf(V vertex)
Returns the "out degree" of the specified vertex. |
java.util.Set<E> |
outgoingEdgesOf(V vertex)
Returns a set of all edges outgoing from the specified vertex. |
E |
removeEdge(V sourceVertex,
V targetVertex)
Removes an edge going from source vertex to target vertex, if such vertices and such edge exist in this graph. |
java.lang.String |
toString()
Returns a string of the parenthesized pair (V, E) representing this G=(V,E) graph. |
Methods inherited from class org.jgrapht.graph.GraphDelegator |
---|
addVertex, containsEdge, containsVertex, degreeOf, edgeSet, edgesOf, getAllEdges, getEdgeFactory, getEdgeWeight, removeEdge, removeVertex, setEdgeWeight, vertexSet |
Methods inherited from class org.jgrapht.graph.AbstractGraph |
---|
assertVertexExist, containsEdge, removeAllEdges, removeAllEdges, removeAllEdges, removeAllVertices, toStringFromSets |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.jgrapht.Graph |
---|
addVertex, containsEdge, containsEdge, containsVertex, edgeSet, edgesOf, getAllEdges, getEdgeFactory, getEdgeWeight, removeAllEdges, removeAllEdges, removeAllVertices, removeEdge, removeVertex, vertexSet |
Constructor Detail |
---|
public EdgeReversedGraph(DirectedGraph<V,E> g)
g
- the base (backing) graph on which the edge-reversed view will be
based.Method Detail |
---|
public E getEdge(V sourceVertex, V targetVertex)
Graph
null
. If any of the specified vertices is null
returns null
In undirected graphs, the returned edge may have its source and target vertices in the opposite order.
getEdge
in interface Graph<V,E>
getEdge
in class GraphDelegator<V,E>
sourceVertex
- source vertex of the edge.targetVertex
- target vertex of the edge.
Graph.getEdge(Object, Object)
public E addEdge(V sourceVertex, V targetVertex)
Graph
null
.
The source and target vertices must already be contained in this graph. If they are not found in graph IllegalArgumentException is thrown.
This method creates the new edge e
using this graph's
EdgeFactory
. For the new edge to be added e
must not be equal to any other edge the graph (even if the graph
allows edge-multiplicity). More formally, the graph must not contain any
edge e2
such that e2.equals(e)
. If such
e2
is found then the newly created edge e
is
abandoned, the method leaves this graph unchanged returns
null
.
addEdge
in interface Graph<V,E>
addEdge
in class GraphDelegator<V,E>
sourceVertex
- source vertex of the edge.targetVertex
- target vertex of the edge.
null
.Graph.addEdge(Object, Object)
public boolean addEdge(V sourceVertex, V targetVertex, E e)
Graph
e
, to this graph if this graph contains no edge e2
such that e2.equals(e)
. If this graph already contains such
an edge, the call leaves this graph unchanged and returns false.
Some graphs do not allow edge-multiplicity. In such cases, if the graph
already contains an edge from the specified source to the specified
target, than this method does not change the graph and returns
false
. If the edge was added to the graph, returns
true
.
The source and target vertices must already be contained in this graph. If they are not found in graph IllegalArgumentException is thrown.
addEdge
in interface Graph<V,E>
addEdge
in class GraphDelegator<V,E>
sourceVertex
- source vertex of the edge.targetVertex
- target vertex of the edge.e
- edge to be added to this graph.
Graph.addEdge(Object, Object, Object)
public int inDegreeOf(V vertex)
DirectedGraph
inDegreeOf
in interface DirectedGraph<V,E>
inDegreeOf
in class GraphDelegator<V,E>
vertex
- vertex whose degree is to be calculated.
DirectedGraph.inDegreeOf(Object)
public int outDegreeOf(V vertex)
DirectedGraph
outDegreeOf
in interface DirectedGraph<V,E>
outDegreeOf
in class GraphDelegator<V,E>
vertex
- vertex whose degree is to be calculated.
DirectedGraph.outDegreeOf(Object)
public java.util.Set<E> incomingEdgesOf(V vertex)
DirectedGraph
incomingEdgesOf
in interface DirectedGraph<V,E>
incomingEdgesOf
in class GraphDelegator<V,E>
vertex
- the vertex for which the list of incoming edges to be
returned.
DirectedGraph.incomingEdgesOf(Object)
public java.util.Set<E> outgoingEdgesOf(V vertex)
DirectedGraph
outgoingEdgesOf
in interface DirectedGraph<V,E>
outgoingEdgesOf
in class GraphDelegator<V,E>
vertex
- the vertex for which the list of outgoing edges to be
returned.
DirectedGraph.outgoingEdgesOf(Object)
public E removeEdge(V sourceVertex, V targetVertex)
Graph
null
otherwise.
removeEdge
in interface Graph<V,E>
removeEdge
in class GraphDelegator<V,E>
sourceVertex
- source vertex of the edge.targetVertex
- target vertex of the edge.
null
if no edge removed.Graph.removeEdge(Object, Object)
public V getEdgeSource(E e)
Graph
getEdgeSource
in interface Graph<V,E>
getEdgeSource
in class GraphDelegator<V,E>
e
- edge of interest
Graph.getEdgeSource(Object)
public V getEdgeTarget(E e)
Graph
getEdgeTarget
in interface Graph<V,E>
getEdgeTarget
in class GraphDelegator<V,E>
e
- edge of interest
Graph.getEdgeTarget(Object)
public java.lang.String toString()
AbstractGraph
toString
in class GraphDelegator<V,E>
Object.toString()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |