aboutsummaryrefslogtreecommitdiff
path: root/src/com.example.portfolio3/com/example/portfolio3/AbstractGraph.java
blob: 35b975ff5fa89b2d91d22ad01ef7c3b8bb75ac82 (plain)
  1. package com.example.portfolio3;
  2. // origin: <https://moodle.ruc.dk/course/section.php?id=211877>
  3. import java.util.Collection;
  4. import java.util.HashMap;
  5. import java.util.HashSet;
  6. /// foo
  7. abstract class AbstractGraph implements Graph{
  8. /// foo
  9. AbstractGraph() {}
  10. /// foo
  11. private HashMap<String,Vertex> vertexMap=new HashMap<>();
  12. /// foo
  13. private HashSet<Vertex> vertexSet=new HashSet<>();
  14. /// foo
  15. /// @param s foo
  16. /// @return Vertex
  17. public Vertex vertex(String s){
  18. if(vertexMap.containsKey(s))return vertexMap.get(s);
  19. Vertex v=new Vertex(s);
  20. vertexMap.put(s,v);
  21. vertexSet.add(v);
  22. return v;
  23. }
  24. /// foo
  25. public void insertEdge(String v, String u, int w){
  26. insertEdge(vertex(v),vertex(u),w);
  27. }
  28. /// foo
  29. public Collection<Vertex> vertices() { return vertexSet; }
  30. /// foo
  31. /// @param v1 foo
  32. /// @param v2 foo
  33. /// @param w foo
  34. abstract public void insertEdge(Vertex v1, Vertex v2, int w);
  35. /// foo
  36. abstract public Collection<Edge> edges();
  37. /// foo
  38. abstract public Collection<Edge> outEdge(Vertex v);
  39. /// foo
  40. abstract public Integer getWeight(Vertex v1, Vertex v2);
  41. }