public class SimpleDirectedSparseVertex extends AbstractSparseVertex
Vertex that resides in a
directed graph; none of its adjoining edges may be parallel.
This implementation stores hash tables that map the neighbors
of this vertex to its incident edges. This enables an
efficient implementation of findEdge(Vertex).
Optimally, this is to be used with DirectedSparseEdge.
DirectedSparseGraph,
DirectedSparseEdgeUserDataContainer.CopyActionid, m_Graphfactory, udc_delegate| Constructor and Description |
|---|
SimpleDirectedSparseVertex()
Creates a new instance of a vertex for inclusion in a
sparse directed graph.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addNeighbor_internal(Edge e,
Vertex v)
Adds the specified edge
e and vertex v
to the internal data structures of this vertex. |
Edge |
findEdge(Vertex v)
Returns the edge that connects this
vertex to the specified vertex
v, or
null if there is no such edge. |
java.util.Set |
findEdgeSet(Vertex v)
Returns the set of edges that connect this vertex to the
specified vertex.
|
protected java.util.Collection |
getEdges_internal()
Returns a list of all incident edges of this vertex.
|
java.util.Set |
getInEdges()
Returns the set of incoming edges of this vertex.
|
protected java.util.Collection |
getNeighbors_internal()
Returns a set of all neighbors attached to this vertex.
|
java.util.Set |
getOutEdges()
Returns the set of outgoing edges of this vertex.
|
java.util.Set |
getPredecessors()
Returns the set of predecessors of this vertex.
|
protected java.util.Map |
getPredsToInEdges()
Returns a map from the predecessors of this vertex to its incoming
edges.
|
java.util.Set |
getSuccessors()
Returns the set of successors of this vertex.
|
protected java.util.Map |
getSuccsToOutEdges()
Returns a map from the successors of this vertex to its outgoing
edges.
|
int |
inDegree()
Returns the number of incoming edges that are incident to this
vertex.
|
protected void |
initialize()
Initializes the internal data structures of this vertex.
|
boolean |
isDest(Edge e)
Returns
true if this vertex is a destination of
the specified edge e, and false otherwise. |
boolean |
isPredecessorOf(Vertex v)
Returns
true if this vertex is a predecessor of
the specified vertex v, and false otherwise. |
boolean |
isSource(Edge e)
Returns
true if this vertex is a source of
the specified edge e, and false otherwise. |
boolean |
isSuccessorOf(Vertex v)
Returns
true if this vertex is a successor of
the specified vertex v, and false otherwise. |
int |
numPredecessors()
Returns the number of predecessors of this vertex.
|
int |
numSuccessors()
Returns the number of successors of this vertex.
|
int |
outDegree()
Returns the number of outgoing edges that are incident to this
vertex.
|
protected void |
removeNeighbor_internal(Edge e,
Vertex v)
Removes the specified edge
e and vertex v
from the internal data structures of this vertex. |
protected void |
setPredsToInEdges(java.util.Map predsToInEdges)
Sets this vertex's internal predecessor -> in-edge map to
the specified map
predsToInEdges. |
protected void |
setSuccsToOutEdges(java.util.Map succsToOutEdges)
Sets this vertex's internal successor -> out-edge map to
the specified map
succsToOutEdges. |
copy, findEdge, findEdgeSet, toStringdegree, equals, getEqualVertex, getEquivalentVertex, getIncidentEdges, getIncidentElements, getNeighbors, isIncident, isNeighborOf, numNeighborsaddGraph_internal, getGraph, hashCode, removeGraph_internaladdUserDatum, clone, containsUserDatumKey, getUserDatum, getUserDatumCopyAction, getUserDatumKeyIterator, importUserData, removeUserDatum, setUserDataFactory, setUserDatumfinalize, getClass, notify, notifyAll, wait, wait, waitdegree, getEqualVertex, getEquivalentVertex, getIncidentEdges, getNeighbors, isIncident, isNeighborOf, numNeighborsgetGraph, getIncidentElementsaddUserDatum, clone, containsUserDatumKey, getUserDatum, getUserDatumCopyAction, getUserDatumKeyIterator, importUserData, removeUserDatum, setUserDatumpublic SimpleDirectedSparseVertex()
public java.util.Set getPredecessors()
Vertexv is a predecessor of this vertex if and only if
v.isPredecessorOf(this) returns true.
Each element of the set returned should implement Vertex.Vertex.getPredecessors()public int numPredecessors()
VertexVertex.numPredecessors()public java.util.Set getSuccessors()
Vertexv is a successor of this vertex if and only if
v.isSuccessorOf(this) returns true.
Each element of the set returned should implement Vertex.Vertex.getSuccessors()public int numSuccessors()
VertexVertex.numSuccessors()public java.util.Set getInEdges()
Vertexe is an incoming edge of this vertex if and only if
this.isDest(e) returns true.
Each element of the set returned should implement Edge.Vertex.getInEdges()public java.util.Set getOutEdges()
Vertexe is an outgoing edge of this vertex if and only if
this.isSource(e) returns true.
Each element of the set returned should implement Edge.Vertex.getOutEdges()public int inDegree()
VertexVertex.inDegree()public int outDegree()
VertexVertex.outDegree()public boolean isSuccessorOf(Vertex v)
Vertextrue if this vertex is a successor of
the specified vertex v, and false otherwise.
This vertex is a successor of v if and only if
there exists an edge e such that
v.isSource(e) == true and
this.isDest(e) == true.
The behavior of this method is undefined if v is not
an element of this vertex's graph.Vertex.isSuccessorOf(Vertex)public boolean isPredecessorOf(Vertex v)
Vertextrue if this vertex is a predecessor of
the specified vertex v, and false otherwise.
This vertex is a predecessor of v if and only if
there exists an edge e such that
this.isSource(e) == true and
v.isDest(e) == true.
The behavior of this method is undefined if v is not
an element of this vertex's graph.Vertex.isPredecessorOf(Vertex)public boolean isSource(Edge e)
Vertextrue if this vertex is a source of
the specified edge e, and false otherwise.
A vertex v is a source of e if e
is an outgoing edge of v.
The behavior of this method is undefined if e is not
an element of this vertex's graph.Vertex.isSource(Edge)public boolean isDest(Edge e)
Vertextrue if this vertex is a destination of
the specified edge e, and false otherwise.
A vertex v is a destination of e
if e is an incoming edge of v.
The behavior of this method is undefined if e is not
an element of this vertex's graph.Vertex.isDest(Edge)public Edge findEdge(Vertex v)
v, or
null if there is no such edge.
Implemented using a hash table for a performance
improvement over the implementation in
AbstractSparseVertex.findEdge in interface VertexfindEdge in class AbstractSparseVertexVertex.findEdge(Vertex)public java.util.Set findEdgeSet(Vertex v)
findEdge(v).findEdgeSet in interface VertexfindEdgeSet in class AbstractSparseVertexVertex.findEdgeSet(Vertex)protected java.util.Collection getNeighbors_internal()
getNeighbors_internal in class AbstractArchetypeVertexAbstractArchetypeVertex.getNeighbors_internal()protected java.util.Collection getEdges_internal()
getEdges_internal in class AbstractArchetypeVertexAbstractArchetypeVertex.getEdges_internal()protected void addNeighbor_internal(Edge e, Vertex v)
AbstractSparseVertexe and vertex v
to the internal data structures of this vertex.addNeighbor_internal in class AbstractSparseVertexe - the new incident edge of this vertexv - the new neighbor of this vertexAbstractSparseVertex.addNeighbor_internal(Edge, Vertex)protected void removeNeighbor_internal(Edge e, Vertex v)
AbstractSparseVertexe and vertex v
from the internal data structures of this vertex.removeNeighbor_internal in class AbstractSparseVertexe - the incident edge of this vertex which is being removedv - the neighbor of this vertex which is being removedAbstractSparseVertex.removeNeighbor_internal(Edge, Vertex)protected java.util.Map getPredsToInEdges()
protected void setPredsToInEdges(java.util.Map predsToInEdges)
predsToInEdges.
This method should not be directly accessed by users.protected java.util.Map getSuccsToOutEdges()
protected void setSuccsToOutEdges(java.util.Map succsToOutEdges)
succsToOutEdges.
This method should not be directly accessed by users.protected void initialize()
initialize in class AbstractElementAbstractElement.initialize()