From 4bd9ae52f2ae1a5724faac928fb65f398a308b58 Mon Sep 17 00:00:00 2001 From: pahimar Date: Wed, 29 May 2013 13:42:44 -0400 Subject: [PATCH] Commiting for a review --- .../ee3/emc/graph/WeightedDirectedGraph.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/ee3_common/com/pahimar/ee3/emc/graph/WeightedDirectedGraph.java b/ee3_common/com/pahimar/ee3/emc/graph/WeightedDirectedGraph.java index 51565201..ef3cf50a 100644 --- a/ee3_common/com/pahimar/ee3/emc/graph/WeightedDirectedGraph.java +++ b/ee3_common/com/pahimar/ee3/emc/graph/WeightedDirectedGraph.java @@ -1,17 +1,47 @@ package com.pahimar.ee3.emc.graph; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import java.util.SortedSet; - +import java.util.TreeSet; public class WeightedDirectedGraph implements Iterable { private final Map> graph = new HashMap>(); private List orderedNodes = new ArrayList(); + + public boolean addNode(T node) + { + // Ignore nodes already added + if (graph.containsKey(node)) { + return false; + } + + orderedNodes.add(node); + graph.put(node, new TreeSet(new Comparator() + { + public int compare(E o1, E o2) { + return orderedNodes.indexOf(o1)-orderedNodes.indexOf(o2); + } + })); + + return true; + } + + public void addEdge(T from, T to) + { + if (!(graph.containsKey(from) && graph.containsKey(to))) + { + throw new NoSuchElementException("Missing nodes from graph"); + } + + //graph.get(from).add((E) to); + } @Override public Iterator iterator() {