类 FlowNetwork
- java.lang.Object
-
- edu.princeton.cs.algs4.FlowNetwork
-
public class FlowNetwork extends java.lang.ObjectTheFlowNetworkclass represents a capacitated network with vertices named 0 through V - 1, where each directed edge is of typeFlowEdgeand has a real-valued capacity and flow. It supports the following two primary operations: add an edge to the network, iterate over all of the edges incident to or from a vertex. It also provides methods for returning the number of vertices V and the number of edges E. Parallel edges and self-loops are permitted.This implementation uses an adjacency-lists representation, which is a vertex-indexed array of
Bagobjects. All operations take constant time (in the worst case) except iterating over the edges incident to a given vertex, which takes time proportional to the number of such edges.For additional documentation, see Section 6.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
-
-
构造器概要
构造器 构造器 说明 FlowNetwork(int V)Initializes an empty flow network withVvertices and 0 edges.FlowNetwork(int V, int E)Initializes a random flow network withVvertices and E edges.FlowNetwork(In in)Initializes a flow network from an input stream.
-
方法概要
修饰符和类型 方法 说明 voidaddEdge(FlowEdge e)Adds the edgeeto the network.java.lang.Iterable<FlowEdge>adj(int v)Returns the edges incident on vertexv(includes both edges pointing to and fromv).intE()Returns the number of edges in the edge-weighted graph.java.lang.Iterable<FlowEdge>edges()static voidmain(java.lang.String[] args)Unit tests theFlowNetworkdata type.java.lang.StringtoString()Returns a string representation of the flow network.intV()Returns the number of vertices in the edge-weighted graph.
-
-
-
构造器详细资料
-
FlowNetwork
public FlowNetwork(int V)
Initializes an empty flow network withVvertices and 0 edges.- 参数:
V- the number of vertices- 抛出:
java.lang.IllegalArgumentException- ifV < 0
-
FlowNetwork
public FlowNetwork(int V, int E)Initializes a random flow network withVvertices and E edges. The capacities are integers between 0 and 99 and the flow values are zero.- 参数:
V- the number of verticesE- the number of edges- 抛出:
java.lang.IllegalArgumentException- ifV < 0java.lang.IllegalArgumentException- ifE < 0
-
FlowNetwork
public FlowNetwork(In in)
Initializes a flow network from an input stream. The format is the number of vertices V, followed by the number of edges E, followed by E pairs of vertices and edge capacities, with each entry separated by whitespace.- 参数:
in- the input stream- 抛出:
java.lang.IllegalArgumentException- if the endpoints of any edge are not in prescribed rangejava.lang.IllegalArgumentException- if the number of vertices or edges is negative
-
-
方法详细资料
-
V
public int V()
Returns the number of vertices in the edge-weighted graph.- 返回:
- the number of vertices in the edge-weighted graph
-
E
public int E()
Returns the number of edges in the edge-weighted graph.- 返回:
- the number of edges in the edge-weighted graph
-
addEdge
public void addEdge(FlowEdge e)
Adds the edgeeto the network.- 参数:
e- the edge- 抛出:
java.lang.IllegalArgumentException- unless endpoints of edge are between0andV-1
-
adj
public java.lang.Iterable<FlowEdge> adj(int v)
Returns the edges incident on vertexv(includes both edges pointing to and fromv).- 参数:
v- the vertex- 返回:
- the edges incident on vertex
vas an Iterable - 抛出:
java.lang.IllegalArgumentException- unless0 <= v < V
-
edges
public java.lang.Iterable<FlowEdge> edges()
-
toString
public java.lang.String toString()
Returns a string representation of the flow network. This method takes time proportional to E + V.- 覆盖:
toString在类中java.lang.Object- 返回:
- the number of vertices V, followed by the number of edges E, followed by the V adjacency lists
-
main
public static void main(java.lang.String[] args)
Unit tests theFlowNetworkdata type.- 参数:
args- the command-line arguments
-
-