N
- Node parameter typeinterface BaseGraph<N> extends SuccessorsFunction<N>, PredecessorsFunction<N>
Graph
and ValueGraph
.Modifier and Type | Method and Description |
---|---|
java.util.Set<N> |
adjacentNodes(N node)
Returns the nodes which have an incident edge in common with
node in this graph. |
boolean |
allowsSelfLoops()
Returns true if this graph allows self-loops (edges that connect a node to itself).
|
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 ). |
java.util.Set<EndpointPair<N>> |
edges()
Returns all edges in this graph.
|
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. |
boolean |
isDirected()
Returns true if the edges in this graph are directed.
|
ElementOrder<N> |
nodeOrder()
Returns the order of iteration for the elements of
nodes() . |
java.util.Set<N> |
nodes()
Returns all nodes in this graph, in the order specified by
nodeOrder() . |
int |
outDegree(N node)
Returns the count of
node 's outgoing edges (equal to successors(node).size() )
in a directed graph. |
java.util.Set<N> |
predecessors(N node)
Returns all nodes in this graph adjacent to
node which can be reached by traversing
node 's incoming edges against the direction (if any) of the edge. |
java.util.Set<N> |
successors(N node)
Returns all nodes in this graph adjacent to
node which can be reached by traversing
node 's outgoing edges in the direction (if any) of the edge. |
java.util.Set<N> nodes()
nodeOrder()
.java.util.Set<EndpointPair<N>> edges()
boolean isDirected()
source node
to a target node
, while
undirected edges connect a pair of nodes to each other.boolean allowsSelfLoops()
IllegalArgumentException
.ElementOrder<N> nodeOrder()
nodes()
.java.util.Set<N> adjacentNodes(N node)
node
in this graph.java.lang.IllegalArgumentException
- if node
is not an element of this graphjava.util.Set<N> predecessors(N node)
node
which can be reached by traversing
node
's incoming edges against the direction (if any) of the edge.
In an undirected graph, this is equivalent to adjacentNodes(Object)
.
predecessors
in interface PredecessorsFunction<N>
java.lang.IllegalArgumentException
- if node
is not an element of this graphjava.util.Set<N> successors(N node)
node
which can be reached by traversing
node
's outgoing edges in the direction (if any) of the edge.
In an undirected graph, this is equivalent to adjacentNodes(Object)
.
This is not the same as "all nodes reachable from node
by following outgoing
edges". For that functionality, see Graphs.reachableNodes(Graph, Object)
.
successors
in interface SuccessorsFunction<N>
java.lang.IllegalArgumentException
- if node
is not an element of this graphjava.util.Set<EndpointPair<N>> incidentEdges(N node)
node
.java.lang.IllegalArgumentException
- if node
is not an element of this graphint degree(N node)
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
.
java.lang.IllegalArgumentException
- if node
is not an element of this graphint inDegree(N node)
node
's incoming edges (equal to predecessors(node).size()
)
in a directed graph. In an undirected graph, returns the degree(Object)
.
If the count is greater than Integer.MAX_VALUE
, returns Integer.MAX_VALUE
.
java.lang.IllegalArgumentException
- if node
is not an element of this graphint outDegree(N node)
node
's outgoing edges (equal to successors(node).size()
)
in a directed graph. In an undirected graph, returns the degree(Object)
.
If the count is greater than Integer.MAX_VALUE
, returns Integer.MAX_VALUE
.
java.lang.IllegalArgumentException
- if node
is not an element of this graphboolean hasEdgeConnecting(N nodeU, N nodeV)
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)
.