N - Node parameter typeE - Edge parameter typefinal class ConfigurableMutableNetwork<N,E> extends ConfigurableNetwork<N,E> implements MutableNetwork<N,E>
MutableNetwork that supports both directed and undirected
graphs. Instances of this class should be constructed with NetworkBuilder.
Time complexities for mutation methods are all O(1) except for removeNode(N node),
which is in O(d_node) where d_node is the degree of node.
edgeToReferenceNode, nodeConnections| Constructor and Description |
|---|
ConfigurableMutableNetwork(NetworkBuilder<? super N,? super E> builder)
Constructs a mutable graph with the properties specified in
builder. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addEdge(N nodeU,
N nodeV,
E edge)
Adds
edge connecting nodeU to nodeV. |
boolean |
addNode(N node)
Adds
node if it is not already present. |
private NetworkConnections<N,E> |
addNodeInternal(N node)
Adds
node to the graph and returns the associated NetworkConnections. |
private NetworkConnections<N,E> |
newConnections() |
boolean |
removeEdge(E edge)
Removes
edge from this network, if it is present. |
boolean |
removeNode(N node)
Removes
node if it is present; all edges incident to node will also be removed. |
adjacentNodes, allowsParallelEdges, allowsSelfLoops, checkedConnections, checkedReferenceNode, containsEdge, containsNode, edgeOrder, edges, edgesConnecting, incidentEdges, incidentNodes, inEdges, isDirected, nodeOrder, nodes, outEdges, predecessors, successorsadjacentEdges, asGraph, degree, edgeConnecting, edgeConnectingOrNull, equals, hasEdgeConnecting, hashCode, inDegree, outDegree, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitadjacentEdges, adjacentNodes, allowsParallelEdges, allowsSelfLoops, asGraph, degree, edgeConnecting, edgeConnectingOrNull, edgeOrder, edges, edgesConnecting, equals, hasEdgeConnecting, hashCode, incidentEdges, incidentNodes, inDegree, inEdges, isDirected, nodeOrder, nodes, outDegree, outEdges, predecessors, successorsConfigurableMutableNetwork(NetworkBuilder<? super N,? super E> builder)
builder.public boolean addNode(N node)
MutableNetworknode if it is not already present.
Nodes must be unique, just as Map keys must be. They must also be non-null.
addNode in interface MutableNetwork<N,E>true if the network was modified as a result of this callprivate NetworkConnections<N,E> addNodeInternal(N node)
node to the graph and returns the associated NetworkConnections.java.lang.IllegalStateException - if node is already presentpublic boolean addEdge(N nodeU, N nodeV, E edge)
MutableNetworkedge connecting nodeU to nodeV. In an undirected network, the edge
will also connect nodeV to nodeU.
Edges must be unique, just as Map keys must be. They must also be non-null.
If nodeU and nodeV are not already present in this graph, this method will
silently add nodeU and nodeV to the graph.
If edge already connects nodeU to nodeV (in the specified order if
this network Network.isDirected(), else in any order), then this method will have no effect.
addEdge in interface MutableNetwork<N,E>true if the network was modified as a result of this callpublic boolean removeNode(N node)
MutableNetworknode if it is present; all edges incident to node will also be removed.removeNode in interface MutableNetwork<N,E>true if the network was modified as a result of this callpublic boolean removeEdge(E edge)
MutableNetworkedge from this network, if it is present.removeEdge in interface MutableNetwork<N,E>true if the network was modified as a result of this callprivate NetworkConnections<N,E> newConnections()