Package algs43

Class EdgeWeightedGraph

java.lang.Object
algs43.EdgeWeightedGraph

public class EdgeWeightedGraph extends Object
The EdgeWeightedGraph class represents an undirected graph of vertices named 0 through V-1, where each edge has a real-valued weight. It supports the following operations: add an edge to the graph, in the graph, iterate over all of the neighbors incident to a vertex. Parallel edges and self-loops are permitted.

For additional documentation, see Section 4.3 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Bag<Edge>[]
     
    private int
     
    private final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create an empty edge-weighted graph with V vertices.
    EdgeWeightedGraph(int V, int E)
    Create a random edge-weighted graph with V vertices and E edges with no parallel edges or self loops.
    EdgeWeightedGraph(int V, int E, boolean allowParallelEdgesAndSelfLoops)
    Create a random edge-weighted graph with V vertices and E edges.
    Copy constructor.
    Create a weighted graph from input stream.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Add the edge e to this graph.
    adj(int v)
    Return the edges incident to vertex v as an Iterable.
    int
    E()
    Return the number of edges in this graph.
    Return all edges in this graph as an Iterable.
    static void
    main(String[] args)
    Test client.
    void
    toGraphviz(String filename)
    Save a graphviz representation of the graph.
    Return a string representation of this graph.
    int
    V()
    Return the number of vertices in this graph.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • V

      private final int V
    • E

      private int E
    • adj

      private final Bag<Edge>[] adj
  • Constructor Details

    • EdgeWeightedGraph

      public EdgeWeightedGraph(int V)
      Create an empty edge-weighted graph with V vertices.
    • EdgeWeightedGraph

      public EdgeWeightedGraph(int V, int E)
      Create a random edge-weighted graph with V vertices and E edges with no parallel edges or self loops. The expected running time is proportional to V + E.
    • EdgeWeightedGraph

      public EdgeWeightedGraph(int V, int E, boolean allowParallelEdgesAndSelfLoops)
      Create a random edge-weighted graph with V vertices and E edges. The expected running time is proportional to V + E.
    • EdgeWeightedGraph

      public EdgeWeightedGraph(In in)
      Create a weighted graph from input stream.
    • EdgeWeightedGraph

      Copy constructor.
  • Method Details

    • V

      public int V()
      Return the number of vertices in this graph.
    • E

      public int E()
      Return the number of edges in this graph.
    • addEdge

      public void addEdge(Edge e)
      Add the edge e to this graph.
    • adj

      public Iterable<Edge> adj(int v)
      Return the edges incident to vertex v as an Iterable. To iterate over the edges incident to vertex v, use foreach notation: for (Edge e : graph.adj(v)).
    • edges

      public Iterable<Edge> edges()
      Return all edges in this graph as an Iterable. To iterate over the edges, use foreach notation: for (Edge e : graph.edges()).
    • toString

      public String toString()
      Return a string representation of this graph.
      Overrides:
      toString in class Object
    • toGraphviz

      public void toGraphviz(String filename)
      Save a graphviz representation of the graph. See graphviz.org.
    • main

      public static void main(String[] args)
      Test client.