Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. class Vertex {
  2.  
  3. String id;
  4. Vertex next;
  5. Edge first;
  6.  
  7. Vertex (String s, Vertex v, Edge e) {
  8. id = s;
  9. next = v;
  10. first = e;
  11. }
  12.  
  13. Vertex (String s) {
  14. this (s, null, null);
  15. }
  16.  
  17. @Override
  18. public String toString() {
  19. return id;
  20. }
  21.  
  22. class Edge {
  23.  
  24. String id;
  25. Vertex target;
  26. Edge next;
  27.  
  28. Edge (String s, Vertex v, Edge e) {
  29. id = s;
  30. target = v;
  31. next = e;
  32. }
  33.  
  34. Edge (String s) {
  35. this (s, null, null);
  36. }
  37.  
  38. @Override
  39. public String toString() {
  40. return id;
  41. }
  42.  
  43. }
  44.  
  45. class Graph {
  46.  
  47. String id;
  48. Vertex first;
  49.  
  50. Graph (String s, Vertex v) {
  51. id = s;
  52. first = v;
  53. }
  54.  
  55. Graph (String s) {
  56. this (s, null);
  57. }
  58.  
  59. @Override
  60. public String toString() {
  61. String nl = System.getProperty ("line.separator");
  62. StringBuffer sb = new StringBuffer (nl);
  63. sb.append (id + nl);
  64. Vertex v = first;
  65. while (v != null) {
  66. sb.append (v.toString() + " --> ");
  67. Edge e = v.first;
  68. while (e != null) {
  69. sb.append (e.toString());
  70. sb.append ("(" + v.toString() + "->"
  71. + e.target.toString() + ") ");
  72. e = e.next;
  73. }
  74. sb.append (nl);
  75. v = v.next;
  76. }
  77. return sb.toString();
  78. }
  79.  
  80. public ArrayList<Edge> transitiveClosure(ArrayList<Vertex> v)
  81. {
  82. Graph g = new Graph("G+");
  83. ArrayList<Edge> edge = new ArrayList();
  84. Edge e = null;
  85. for(Vertex vertex : v)
  86. {
  87. System.out.print(vertex);
  88. }
  89.  
  90. int next = 0;
  91. g.first = v.get(0);
  92. Vertex tmp = v.get(0);
  93.  
  94. if(v.get(next) != null)
  95. {
  96. next++;
  97. tmp = v.get(next);
  98. e = new Edge(g.first.toString() + tmp);
  99. edge.add(e);
  100. //System.out.println(e);
  101. }
  102. if(v.get(next) !=null)
  103. {
  104. next++;
  105. tmp = v.get(next);
  106. e = new Edge(g.first.toString() + tmp);
  107. edge.add(e);
  108. }
  109.  
  110.  
  111.  
  112. System.out.println("");
  113. return edge;
  114.  
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement