blob: 514ac1ef8057286c370bfd45353a101801ce2f08 (
plain)
- package com.example.portfolio3;
- // origin: <https://moodle.ruc.dk/course/section.php?id=211877>
- import java.util.Collection;
- import java.util.HashMap;
- import java.util.HashSet;
- /// foo
- public 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 final Vertex vertex(final 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 final void insertEdge(final String v, final String u, final int w) {
- insertEdge(vertex(v), vertex(u), w);
- }
- /// foo
- public final 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);
- }
|