Advertisement
habur331

Untitled

Apr 4th, 2022
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Map;
  6.  
  7. public class Main {
  8.  
  9. public static void main(String[] args) {
  10. // write your code here
  11. }
  12. }
  13.  
  14. class Vertex {
  15. String label;
  16. Vertex(String label) {
  17. this.label = label;
  18. }
  19.  
  20. // equals and hashCode
  21. }
  22.  
  23. class Graph {
  24. private Map<Vertex, List<Vertex>> adjVertices;
  25.  
  26. // standard constructor, getters, setters
  27.  
  28. void addVertex(String label) {
  29. adjVertices.putIfAbsent(new Vertex(label), new ArrayList<>());
  30. }
  31.  
  32. void removeVertex(String label) {
  33. Vertex v = new Vertex(label);
  34. adjVertices.values().stream().forEach(e -> e.remove(v));
  35. adjVertices.remove(new Vertex(label));
  36. }
  37.  
  38. void addEdge(String label1, String label2) {
  39. Vertex v1 = new Vertex(label1);
  40. Vertex v2 = new Vertex(label2);
  41. adjVertices.get(v1).add(v2);
  42. adjVertices.get(v2).add(v1);
  43. }
  44.  
  45. void removeEdge(String label1, String label2) {
  46. Vertex v1 = new Vertex(label1);
  47. Vertex v2 = new Vertex(label2);
  48. List<Vertex> eV1 = adjVertices.get(v1);
  49. List<Vertex> eV2 = adjVertices.get(v2);
  50. if (eV1 != null)
  51. eV1.remove(v2);
  52. if (eV2 != null)
  53. eV2.remove(v1);
  54. }
  55.  
  56. public static Graph createGraph() {
  57. Graph graph = new Graph();
  58. graph.addVertex("Bob");
  59. graph.addVertex("Alice");
  60. graph.addVertex("Mark");
  61. graph.addVertex("Rob");
  62. graph.addVertex("Maria");
  63. graph.addEdge("Bob", "Alice");
  64. graph.addEdge("Bob", "Rob");
  65. graph.addEdge("Alice", "Mark");
  66. graph.addEdge("Rob", "Mark");
  67. graph.addEdge("Alice", "Maria");
  68. graph.addEdge("Rob", "Maria");
  69. return graph;
  70. }
  71.  
  72. List<Vertex> getAdjVertices(String label) {
  73. return adjVertices.get(new Vertex(label));
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement