N
- Node parameter typeabstract class AbstractBaseGraph<N> extends java.lang.Object implements BaseGraph<N>
BaseGraph
.
The methods implemented in this class should not be overridden unless the subclass admits a more efficient implementation.
Modifier and Type | Class and Description |
---|---|
private static class |
AbstractBaseGraph.IncidentEdgeSet<N> |
Constructor and Description |
---|
AbstractBaseGraph() |
Modifier and Type | Method and Description |
---|---|
int |
degree(N node)
Returns the count of
node 's incident edges, counting self-loops twice (equivalently,
the number of times an edge touches node ). |
protected long |
edgeCount()
Returns the number of edges in this graph; used to calculate the size of
edges() . |
java.util.Set<EndpointPair<N>> |
edges()
An implementation of
BaseGraph.edges() defined in terms of BaseGraph.nodes() and BaseGraph.successors(Object) . |
boolean |
hasEdgeConnecting(N nodeU,
N nodeV)
Returns true if there is an edge directly connecting
nodeU to nodeV . |
java.util.Set<EndpointPair<N>> |
incidentEdges(N node)
Returns the edges in this graph whose endpoints include
node . |
int |
inDegree(N node)
Returns the count of
node 's incoming edges (equal to predecessors(node).size() )
in a directed graph. |
int |
outDegree(N node)
Returns the count of
node 's outgoing edges (equal to successors(node).size() )
in a directed graph. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
adjacentNodes, allowsSelfLoops, isDirected, nodeOrder, nodes, predecessors, successors
protected long edgeCount()
edges()
. This
implementation requires O(|N|) time. Classes extending this one may manually keep track of the
number of edges as the graph is updated, and override this method for better performance.public java.util.Set<EndpointPair<N>> edges()
BaseGraph.edges()
defined in terms of BaseGraph.nodes()
and BaseGraph.successors(Object)
.public java.util.Set<EndpointPair<N>> incidentEdges(N node)
BaseGraph
node
.incidentEdges
in interface BaseGraph<N>
public int degree(N node)
BaseGraph
node
's incident edges, counting self-loops twice (equivalently,
the number of times an edge touches node
).
For directed graphs, this is equal to inDegree(node) + outDegree(node)
.
For undirected graphs, this is equal to incidentEdges(node).size()
+ (number of
self-loops incident to node
).
If the count is greater than Integer.MAX_VALUE
, returns Integer.MAX_VALUE
.
public int inDegree(N node)
BaseGraph
node
's incoming edges (equal to predecessors(node).size()
)
in a directed graph. In an undirected graph, returns the BaseGraph.degree(Object)
.
If the count is greater than Integer.MAX_VALUE
, returns Integer.MAX_VALUE
.
public int outDegree(N node)
BaseGraph
node
's outgoing edges (equal to successors(node).size()
)
in a directed graph. In an undirected graph, returns the BaseGraph.degree(Object)
.
If the count is greater than Integer.MAX_VALUE
, returns Integer.MAX_VALUE
.
public boolean hasEdgeConnecting(N nodeU, N nodeV)
BaseGraph
nodeU
to nodeV
. This is
equivalent to nodes().contains(nodeU) && successors(nodeU).contains(nodeV)
.
In an undirected graph, this is equal to hasEdgeConnecting(nodeV, nodeU)
.
hasEdgeConnecting
in interface BaseGraph<N>