import java.util.Map; import java.util.Set; import java.util.ArrayList; public class main{ static public void main(String argv[]){ // Dijkstra java.util.List> verticies = new java.util.ArrayList>(); Graph.Vertex v1 = new Graph.Vertex(1); verticies.add(v1); Graph.Vertex v2 = new Graph.Vertex(2); verticies.add(v2); Graph.Vertex v3 = new Graph.Vertex(3); verticies.add(v3); Graph.Vertex v4 = new Graph.Vertex(4); verticies.add(v4); Graph.Vertex v5 = new Graph.Vertex(5); verticies.add(v5); Graph.Vertex v6 = new Graph.Vertex(6); verticies.add(v6); java.util.List> edges = new java.util.ArrayList>(); Graph.Edge e1_2 = new Graph.Edge(7, v1, v2); edges.add(e1_2); Graph.Edge e1_3 = new Graph.Edge(9, v1, v3); edges.add(e1_3); Graph.Edge e1_6 = new Graph.Edge(14, v1, v6); edges.add(e1_6); Graph.Edge e2_3 = new Graph.Edge(10, v2, v3); edges.add(e2_3); Graph.Edge e2_4 = new Graph.Edge(15, v2, v4); edges.add(e2_4); Graph.Edge e3_4 = new Graph.Edge(11, v3, v4); edges.add(e3_4); Graph.Edge e3_6 = new Graph.Edge(2, v3, v6); edges.add(e3_6); Graph.Edge e5_6 = new Graph.Edge(9, v5, v6); edges.add(e5_6); Graph.Edge e4_5 = new Graph.Edge(6, v4, v5); edges.add(e4_5); Graph undirected = new Graph(verticies, edges); Graph.Vertex start = v1; System.out.println("---Dijkstra---"); java.util.Map, Graph.CostPathPair> map1 = Dijkstra.getShortestPaths(undirected, start); System.out.println(getPathMapString(start, map1)); System.out.println("---BellmanFord---"); Map, Graph.CostPathPair> map2 = BellmanFord.getShortestPaths(undirected, start); System.out.println(getPathMapString(start, map2)); System.out.println("---Prim---"); Graph.CostPathPair pair = Prim.getMinimumSpanningTree(undirected, start); System.out.println(pair.toString()); } private static final String getPathMapString(Graph.Vertex start, Map, Graph.CostPathPair> map) { StringBuilder builder = new StringBuilder(); for (Graph.Vertex v : map.keySet()) { Graph.CostPathPair pair = map.get(v); builder.append("From ").append(start.getValue()).append(" to vertex=").append(v.getValue()).append("\n"); if (pair != null) builder.append(pair.toString()).append("\n"); } return builder.toString(); } private static final String getPathMapString(Map, Map, Set>>> paths) { StringBuilder builder = new StringBuilder(); for (Graph.Vertex v : paths.keySet()) { Map, Set>> map = paths.get(v); for (Graph.Vertex v2 : map.keySet()) { builder.append("From=").append(v.getValue()).append(" to=").append(v2.getValue()).append("\n"); Set> path = map.get(v2); builder.append(path).append("\n"); } } return builder.toString(); } }