Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please provide examples. 1. Write a class DepthFirstPaths.java to implement a De

ID: 3740743 • Letter: P

Question

Please provide examples.

1. Write a class DepthFirstPaths.java to implement a Depth First Search algorithm ively you can download the file using the pseudocode given below. Alternat DepthFirstPaths.java and implement al the unimplemented methods of the class so that it perfoms Depth First Search on graph G. See the pseudocode given below DFS(G) l for each vertex u E G.V .color-WHITE .TNIL time-0 5 for each vertex uEG.V if u.color WHITE DFS-VisIT(G, u) DFS-VISIT(G,u) time- time +1 2 u.d time 3 u.colorGRAY 4 for each v e G.Adiu) I/ white vertex u has just been discovered II explore edge (u, v) if v.color WHITE DFS-VISIT(G, v // blacken u; it is finished 8 M.colorBLACK timetime +1 10 .f time 2. Write a driver program, which reads input file mediumG.txt as an undirected graph and runs the Depth First Search algorithm to find paths to all the other vertices considering 0 as the source. This driver program should display the paths in the following manner: 0 to v: "list of all the vertices traversed to go to v from 0, separated by

Explanation / Answer

ANS:-

program:

//DepthFirstPaths.java

public class DepthFirstPaths {

//booleann

private boolean[] marked;

private int[] edgeTo;

// source_verex

private final int s;   

// graph G int s

public DepthFirstPaths(Graph G, int s) {

this.s = s;

edgeTo = new int[G.V()];

marked = new boolean[G.V()];

validateVertex(s);

dfs(G, s);

}

// depth_first_search from "v"

private void dfs(Graph G, int v) {

marked[v] = true;

for (int w : G.adj(v)) {

if (!marked[w]) {

edgeTo[w] = v;

dfs(G, w);

}

}

}

//path

public boolean hasPathTo(int v) {

validateVertex(v);

//return

return marked[v];

}

//iterabl

public Iterable<Integer> pathTo(int v) {

validateVertex(v);

// doesnt has path

if (!hasPathTo(v))

// returns_nul

return null;

Stack<Integer> path = new Stack<Integer>();

// for loop

for (int x = v; x != s; x = edgeTo[x])

// push

path.push(x);

path.push(s);

// return

return path;

}

// throws an IllegalArgumentException if unless the {@code 0 <= v < V}

private void validateVertex(int v) {

int V = marked.length;

if (v < 0 || v >= V)

throw new IllegalArgumentException("vertex " + v + " is not between 0 and " + (V-1));

}

// driver progrm

public static void main(String[] args) {

In in = new In(args[0]);

Graph G = new Graph(in);

int s = Integer.parseInt(args[1]);

DepthFirstPaths dfs = new DepthFirstPaths(G, s);

for (int v = 0; v < G.V(); v++) {

if (dfs.hasPathTo(v)) {

StdOut.printf("%d to %d: ", s, v);

for (int x : dfs.pathTo(v)) {

if (x == s) StdOut.print(x);

else

StdOut.print("-" + x);

}

StdOut.println();

}

else {

StdOut.printf("%d to %d: not connected ", s, v);

}

}

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote