1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| static void buildGraph() { HashMap<String, Vertex> nodes = new HashMap<String, Vertex>(); nodes.put("a", new Vertex("a")); nodes.put("b", new Vertex("b")); nodes.put("c", new Vertex("c")); nodes.put("d", new Vertex("d")); nodes.put("e", new Vertex("e"));
nodes.get("a").map.put(nodes.get("b"), new Edge(nodes.get("a"), nodes.get("b"), 10)); nodes.get("a").map.put(nodes.get("d"), new Edge(nodes.get("a"), nodes.get("d"), 30)); nodes.get("a").map.put(nodes.get("e"), new Edge(nodes.get("a"), nodes.get("e"), 100));
nodes.get("b").map.put(nodes.get("c"), new Edge(nodes.get("b"), nodes.get("c"), 50));
nodes.get("c").map.put(nodes.get("e"), new Edge(nodes.get("c"), nodes.get("e"), 10));
nodes.get("d").map.put(nodes.get("c"), new Edge(nodes.get("d"), nodes.get("c"), 20)); nodes.get("d").map.put(nodes.get("e"), new Edge(nodes.get("d"), nodes.get("e"), 60)); }
static class Vertex { String key; HashMap<Vertex, Edge> map = new HashMap<Vertex, Edge>();
Vertex(String key) { this.key = key; } }
static class Edge { Vertex start; Vertex end; int Len; boolean used;
Edge(Vertex start, Vertex end, int key) { this.start = start; this.end = end; this.Len = key; } }
|