aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java')
-rw-r--r--src/main/java/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/main/java/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java b/src/main/java/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java
new file mode 100644
index 0000000..c2cf433
--- /dev/null
+++ b/src/main/java/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java
@@ -0,0 +1,52 @@
+package com.example.portfolio3;
+
+// origin: <https://moodle.ruc.dk/course/section.php?id=211877>
+
+import java.util.*;
+
+/// foo
+abstract class AbstractGraph implements Graph{
+
+ /// foo
+ AbstractGraph() {}
+
+ /// foo
+ private HashMap<String,Vertex> vertexMap=new HashMap<>();
+
+ /// foo
+ private HashSet<Vertex> vertexSet=new HashSet<>();
+
+ /// foo
+ /// @param s foo
+ /// @return Vertex
+ public Vertex vertex(String s){
+ if(vertexMap.containsKey(s))return vertexMap.get(s);
+ Vertex v=new Vertex(s);
+ vertexMap.put(s,v);
+ vertexSet.add(v);
+ return v;
+ }
+
+ /// foo
+ public void insertEdge(String v, String u, int w){
+ insertEdge(vertex(v),vertex(u),w);
+ }
+
+ /// foo
+ public Collection<Vertex> vertices() { return vertexSet; }
+
+ /// foo
+ /// @param v1 foo
+ /// @param v2 foo
+ /// @param w foo
+ abstract public void insertEdge(Vertex v1, Vertex v2, int w);
+
+ /// foo
+ abstract public Collection<Edge> edges();
+
+ /// foo
+ abstract public Collection<Edge> outEdge(Vertex v);
+
+ /// foo
+ abstract public Integer getWeight(Vertex v1, Vertex v2);
+}