Please provide examples. Graph.java provided below
public class Graph { public int V; public int E; public LinkedList[] adj; public Graph() { V = 0; E = 0; } 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 (); } 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) { } public String tostring() { String s = new String(); s = "There are "+V+" vertices and "+E+" edges "; for(int i=0;i 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. . Write a driver program, which reads input files mediumGraph.txt, LargeGraph.txt and XtraLargeGraph.tt (on Canvas) and display the weighted graphs by printing adjacency list