package com.example.portfolio3; // origin: import java.util.Collection; import java.util.HashMap; import java.util.HashSet; /// foo abstract class AbstractGraph implements Graph{ /// foo AbstractGraph() {} /// foo private HashMap vertexMap=new HashMap<>(); /// foo private HashSet 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 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 edges(); /// foo abstract public Collection outEdge(Vertex v); /// foo abstract public Integer getWeight(Vertex v1, Vertex v2); }