From 3d1c8553f61747b54a8304a39f401f9b77f8cf57 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Sat, 1 Aug 2015 18:53:23 +0100 Subject: Option for SkolemUpperBound application and for skolemisation depth (from file pagoda.properties). --- .../ox/cs/pagoda/util/data_structures/Graph.java | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/uk/ac/ox/cs/pagoda/util/data_structures/Graph.java (limited to 'src/uk/ac/ox/cs/pagoda/util/data_structures') diff --git a/src/uk/ac/ox/cs/pagoda/util/data_structures/Graph.java b/src/uk/ac/ox/cs/pagoda/util/data_structures/Graph.java new file mode 100644 index 0000000..4f454df --- /dev/null +++ b/src/uk/ac/ox/cs/pagoda/util/data_structures/Graph.java @@ -0,0 +1,38 @@ +package uk.ac.ox.cs.pagoda.util.data_structures; + +import java.util.*; + +public class Graph { + + private final boolean isDirected; + + private Map> outEdgesOf = new HashMap<>(); + public Graph(boolean isDirected) { + this.isDirected = isDirected; + } + + public Graph() { + this(false); + } + public void addNode(V v) { + if(!outEdgesOf.containsKey(v)) + outEdgesOf.put(v, new HashSet()); + } + + public void addEdge(V v, V u) { + addNode(v); + addNode(u); + outEdgesOf.get(v).add(u); + + if(isDirected) + outEdgesOf.get(u).add(v); + } + + public Iterator getOutNeighbors(V v) { + return outEdgesOf.get(v).iterator(); + } + + public boolean isDirected() { + return isDirected; + } +} -- cgit v1.2.3