Package edu.princeton.cs.algs4
Class AdjMatrixEdgeWeightedDigraph
- Object
-
- edu.princeton.cs.algs4.AdjMatrixEdgeWeightedDigraph
-
public class AdjMatrixEdgeWeightedDigraph extends Object
TheAdjMatrixEdgeWeightedDigraphclass represents an edge-weighted digraph of vertices named 0 through V - 1, where each directed edge is of typeDirectedEdgeand has a real-valued weight. It supports the following two primary operations: add a directed edge to the digraph and iterate over all of edges incident from a given vertex. It also provides methods for returning the number of vertices V and the number of edges E. Parallel edges are disallowed; self-loops are permitted.This implementation uses an adjacency-matrix representation. All operations take constant time (in the worst case) except iterating over the edges incident from a given vertex, which takes time proportional to V.
For additional documentation, see Section 4.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
- Author:
- Robert Sedgewick, Kevin Wayne
-
-
Constructor Summary
Constructors Constructor Description AdjMatrixEdgeWeightedDigraph(int V)Initializes an empty edge-weighted digraph withVvertices and 0 edges.AdjMatrixEdgeWeightedDigraph(int V, int E)Initializes a random edge-weighted digraph withVvertices and E edges.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEdge(DirectedEdge e)Adds the directed edgeeto the edge-weighted digraph (if there is not already an edge with the same endpoints).Iterable<DirectedEdge>adj(int v)Returns the directed edges incident from vertexv.intE()Returns the number of edges in the edge-weighted digraph.static voidmain(String[] args)Unit tests theAdjMatrixEdgeWeightedDigraphdata type.StringtoString()Returns a string representation of the edge-weighted digraph.intV()Returns the number of vertices in the edge-weighted digraph.
-
-
-
Constructor Detail
-
AdjMatrixEdgeWeightedDigraph
public AdjMatrixEdgeWeightedDigraph(int V)
Initializes an empty edge-weighted digraph withVvertices and 0 edges.- Parameters:
V- the number of vertices- Throws:
IllegalArgumentException- ifV < 0
-
AdjMatrixEdgeWeightedDigraph
public AdjMatrixEdgeWeightedDigraph(int V, int E)Initializes a random edge-weighted digraph withVvertices and E edges.- Parameters:
V- the number of verticesE- the number of edges- Throws:
IllegalArgumentException- ifV < 0IllegalArgumentException- ifE < 0
-
-
Method Detail
-
V
public int V()
Returns the number of vertices in the edge-weighted digraph.- Returns:
- the number of vertices in the edge-weighted digraph
-
E
public int E()
Returns the number of edges in the edge-weighted digraph.- Returns:
- the number of edges in the edge-weighted digraph
-
addEdge
public void addEdge(DirectedEdge e)
Adds the directed edgeeto the edge-weighted digraph (if there is not already an edge with the same endpoints).- Parameters:
e- the edge
-
adj
public Iterable<DirectedEdge> adj(int v)
Returns the directed edges incident from vertexv.- Parameters:
v- the vertex- Returns:
- the directed edges incident from vertex
vas an Iterable - Throws:
IllegalArgumentException- unless0 <= v < V
-
toString
public String toString()
Returns a string representation of the edge-weighted digraph. This method takes time proportional to V2.
-
main
public static void main(String[] args)
Unit tests theAdjMatrixEdgeWeightedDigraphdata type.- Parameters:
args- the command-line arguments
-
-