Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Weighted edge graph java program help? Please also show you implementing it in a main method! Thank you! My Graph.java class import java.io.BufferedReader; import java.io.IOException;

image text in transcribed

Weighted edge graph java program help? Please also show you implementing it in a main method! Thank you!

My Graph.java class

import java.io.BufferedReader;

import java.io.IOException;

import java.util.LinkedList;

import java.util.Stack;

import java.util.StringTokenizer;

import java.util.Iterator;

public class Graph {

public int V;

public int E;

public LinkedList[] adj;

public Graph()

{

V = 0;

E = 0;

}

@SuppressWarnings("unchecked")

public Graph(BufferedReader reader) throws IOException

{

String line;

line = reader.readLine();

V = Integer.parseInt(line);

line = reader.readLine();

E = Integer.parseInt(line);

adj = new LinkedList[V];

for (int v = 0; v

adj[v] = new LinkedList();

}

while ((line = reader.readLine()) != null) {

int tempV1, tempV2;

StringTokenizer st = new StringTokenizer(line, " ");

tempV1 = Integer.parseInt(st.nextToken());

tempV2 = Integer.parseInt(st.nextToken());

addEdge(tempV1, tempV2);

}

}

public void addEdge(int v, int w) {

adj[v].add(w);

}

public String tostring()

{

String s = new String();

s = "There are "+V+" vertices and "+E+" edges ";

for(int i=0;i

{

s = s+i+": ";

for(int j = 0; j

{

s = s+adj[i].get(j)+" ";

}

s = s+" ";

}

return s;

}

// A recursive function used by topologicalSort

void topoSort(int v, boolean visited[], Stack stack)

{

// Mark the current node as visited.

visited[v] = true;

Integer i;

// Recur for all the vertices adjMacent to this

// vertex

Iterator ints = adj[v].iterator();

while (ints.hasNext())

{

i = ints.next();

if (!visited[i]) {

topoSort(i, visited, stack);

}

}

// Push current vertex to stack which stores result

stack.push(new Integer(v));

}

void topologicalSort()

{

Stack stack = new Stack();

// Mark all the vertices as not visited

boolean visited[] = new boolean[V];

for (int i = 0; i

visited[i] = false;

}

for (int i = 0; i

if (visited[i] == false) {

topoSort(i, visited, stack);

}

}

// Print contents of stack

while (stack.empty()==false) {

System.out.print(stack.pop() + " , ");

}

}

}

Input File Sample:

8

15

4 5 0.35

5 4 0.35

4 7 0.37

5 7 0.28

7 5 0.28

5 1 0.32

0 4 0.38

0 2 0.26

7 3 0.39

1. 3 0.29

2. 7 0.34

6 2 0.40

3. 6 0.52

6 0 0.58

6 4 0.93

1. Implement a weighted graph class from the Graph.java used previously. Graph.java uses integer value for storing an edge. Instead of using integer value for storing edges, create an "Edge" class that holds information of edge. Edge class has following attributes (not limited to): Vertex v1, v2 int edgelD int edgeWeight 2. Change the adjacency list to hold the vertex and edge weight. 3. Write a driver program, which reads input files mediumGraph.txt, LargeGraph.txt and XtraLargeGraph.txt (on Canvas) and display the weighted graphs by printing adjacency list

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions