MCPcopy Create free account
hub / github.com/PrajaktaSathe/Java / Dijkstra

Class Dijkstra

Programs/Dijkstra.java:3–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1import java.util.*;
2
3public class Dijkstra{
4 public static void main(String ...args){
5 int v = 9;
6 Graph g = new Graph(v);
7 g.addEdge(0, 1, 4);
8 g.addEdge(0, 7, 8);
9 g.addEdge(1, 2, 8);
10 g.addEdge(1, 7, 11);
11 g.addEdge(2, 3, 7);
12 g.addEdge(2, 8, 2);
13 g.addEdge(2, 5, 4);
14 g.addEdge(3, 4, 9);
15 g.addEdge(3, 5, 14);
16 g.addEdge(4, 5, 10);
17 g.addEdge(5, 6, 2);
18 g.addEdge(6, 7, 1);
19 g.addEdge(6, 8, 6);
20 g.addEdge(7, 8, 7);
21 // g.printGraph();
22
23 dijkstra(g,0);
24 }
25
26 private static void dijkstra(Graph g, int src){
27 int V = g.v;
28 int dist[] = new int[V];
29 Arrays.fill(dist, Integer.MAX_VALUE);
30 dist[src] = 0;
31 boolean visited[] = new boolean[V];
32
33
34 for(int i = 0 ; i < V; i ++){
35 int u = minDist(dist,visited);
36 visited[u] = true;
37
38 List<AdjNode> list = g.adjList.get(u);
39 for(AdjNode v : list){
40 if(!visited[v.dest] && dist[u] + v.cost < dist[v.dest]){
41 dist[v.dest] = dist[u] + v.cost;
42 }
43 }
44 }
45
46 System.out.println("Vertex Distance from Source");
47 for(int i = 0; i < dist.length; i++)
48 System.out.println(i + " " + dist[i]);
49 }
50
51 private static int minDist(int dist[], boolean[] visited){
52 int min = Integer.MAX_VALUE, min_index = -1;
53
54 for(int i = 0 ; i < dist.length; i++){
55 if(!visited[i] && dist[i] <= min){
56 min = dist[i];
57 min_index = i;
58 }
59 }
60 return min_index;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected