Question
JAVA: Complete the class. Please let me know if you need any other files 01 02 03 04 05 06 07 08 09 10 11
JAVA: Complete the class. Please let me know if you need any other files
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package algs42; public class MyDegrees { // TODO: complete the methods // The constructor may take time proportional to V+E // The other methods should all take constant time public MyDegrees(Digraph G) { } // indegree of v public int indegree(int v) { return 0; } // outdegree of v public int outdegree(int v) { return 0; } // sources public Iterable
|
this is the digraph class:
package algs42; import stdlib.*; import algs13.Bag;
/** * The Digraph class represents an directed graph of vertices * named 0 through V-1. * It supports the following operations: add an edge to the graph, * iterate over all of the neighbors incident to a vertex. * Parallel edges and self-loops are permitted. *
* For additional documentation, * see Section 5.2 of * Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne. */ public class Digraph { private final int V; private int E; private final Bag
/** * Create an empty digraph with V vertices. */ @SuppressWarnings("unchecked") public Digraph(int V) { if (V < 0) throw new IllegalArgumentException("Number of vertices in a Digraph must be nonnegative"); this.V = V; this.E = 0; adj = new Bag[V]; for (int v = 0; v < V; v++) { adj[v] = new Bag<>(); } }
/** * Return the number of vertices in the digraph. */ public int V() { return V; }
/** * Return the number of edges in the digraph. */ public int E() { return E; }
/** * Add the directed edge v->w to the digraph. * @throws java.lang.IndexOutOfBoundsException unless both 0 <= v < V and 0 <= w < V */ public void addEdge(int v, int w) { if (v < 0 || v >= V) throw new IndexOutOfBoundsException("vertex " + v + " is not between 0 and " + (V-1)); if (w < 0 || w >= V) throw new IndexOutOfBoundsException("vertex " + w + " is not between 0 and " + (V-1)); adj[v].add(w); E++; }
/** * Return the list of vertices pointed to from vertex v as an Iterable. * @throws java.lang.IndexOutOfBoundsException unless 0 <= v < V */ public Iterable
/** * Return the reverse of the digraph. */ public Digraph reverse() { Digraph R = new Digraph(V); for (int v = 0; v < V; v++) { for (int w : adj(v)) { R.addEdge(w, v); } } return R; }
/** * Return a string representation of the digraph. */ public String toString() { StringBuilder s = new StringBuilder(); String NEWLINE = System.getProperty("line.separator"); s.append(V + " vertices, " + E + " edges " + NEWLINE); for (int v = 0; v < V; v++) { s.append(String.format("%d: ", v)); for (int w : adj[v]) { s.append(String.format("%d ", w)); } s.append(NEWLINE); } return s.toString(); }
/** * Save a graphviz representation of the graph. * See graphviz.org. */ public void toGraphviz(String filename) { GraphvizBuilder gb = new GraphvizBuilder (); for (int v = 0; v < V; v++) { gb.addNode (v); for (int w : adj[v]) gb.addEdge (v, w); } gb.toFile (filename); }
/** * Test client. */ public static void main(String[] args) { //args = new String[] { "data/mediumDG.txt" }; args = new String[] { "data/tinyDG.txt" }; //args = new String[] { "data/tinyDGeuler1.txt" }; //args = new String[] { "data/tinyDGeuler2.txt" }; //args = new String[] { "data/tinyDGeuler3.txt" }; //args = new String[] { "data/tinyDGeuler4.txt" }; //args = new String[] { "data/tinyDGeuler5.txt" }; //args = new String[] { "data/tinyDGeuler6.txt" }; //args = new String[] { "data/tinyDGex2.txt" }; //args = new String [] { "10", "20" };
Digraph G; if (args.length == 1) { In in = new In(args[0]); G = DigraphGenerator.fromIn(in); } else { int V = Integer.parseInt (args[0]); int E = Integer.parseInt (args[1]); G = DigraphGenerator.simple(V, E); } StdOut.println(G); G.toGraphviz ("g.png"); }
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started