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 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); }