Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. public boolean contractEdge(V vertex1, V vertex2) {
  2. if (!adjList.containsKey(vertex1) || !adjList.containsKey(vertex2))
  3. return false;
  4. if (this.getEdge(vertex1, vertex2) != -1 ||
  5. this.getEdge(vertex2, vertex1) != -1) {
  6. if (vertex1.compareTo(vertex2) < 0) {
  7. for (V v : adjList.get(vertex2).keySet()) {
  8. if (v.compareTo(vertex1) != 0) {
  9. System.out.println("Added: outgoing: " + v);
  10. this.addEdge(vertex1, v, this.getEdge(vertex2, v));
  11. }
  12. }
  13. for (V v : adjList.keySet()) {
  14. if (adjList.get(v).keySet().contains(vertex2) &&
  15. v.compareTo(vertex1) != 0) {
  16. System.out.println("Added: incoming");
  17. this.addEdge(v, vertex1, this.getEdge(v, vertex2));
  18. }
  19. }
  20. this.removeVertex(vertex2);
  21. return true;
  22. } else {
  23. for (V v : adjList.get(vertex1).keySet()) {
  24. this.addEdge(vertex2, v, this.getEdge(v, vertex1));
  25. //this.addEdge(v, vertex2, this.getEdge(vertex2, v));
  26. }
  27. for (V v: adjList.keySet()) {
  28. if (adjList.get(v).keySet().contains(vertex1)) {
  29. this.addEdge(v, vertex2, this.getEdge(vertex2, v));
  30. }
  31. }
  32. this.removeVertex(vertex1);
  33. return true;
  34. }
  35. }
  36. return false;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement