Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. /**
  4. * Created by asd on 2017-11-21.
  5. */
  6. public class Klasa extends LGraph {
  7. private boolean[] odwiedzone;
  8.  
  9. public Klasa(int vertexCount) {
  10. for (int i = 0; i < vertexCount; i++) {
  11. addVertex();
  12. }
  13. }
  14.  
  15. @Override
  16. public void writeList() {
  17. for (int i = 0; i < listaSasiedztwa.size(); ++i) {
  18. System.out.println("Wierzcholek " + i + ": " + listaSasiedztwa.get(i).toString());
  19. }
  20. }
  21.  
  22. @Override
  23. public void writeMatrix() {
  24. for (int i = 0; i < iloscWierzcholkow; ++i) {
  25. for (int j = 0; j < iloscWierzcholkow; ++j) {
  26. if (check(i, j)) {
  27. System.out.print("1 ");
  28. } else {
  29. System.out.print("0 ");
  30. }
  31. }
  32. System.out.println();
  33. }
  34. }
  35.  
  36. @Override
  37. public int addVertex() {
  38. this.listaSasiedztwa.add(new ArrayList<>());
  39. return iloscWierzcholkow++;
  40. }
  41.  
  42. @Override
  43. public void addEdge(int source, int target) throws IllegalArgumentException {
  44. List<Integer> l = listaSasiedztwa.get(source);
  45. if (!check(source, target)) {
  46. l.add(target);
  47. }
  48. }
  49.  
  50. @Override
  51. public List<Integer> sasiedzi(int v) throws IllegalArgumentException {
  52. ArrayList<Integer> l = new ArrayList<>();
  53. l.addAll(listaSasiedztwa.get(v));
  54. for (int i = 0; i < iloscWierzcholkow; i++) {
  55. if (check(i, v) && !l.contains(i)) {
  56. l.add(i);
  57. }
  58. }
  59. return l;
  60. }
  61.  
  62. @Override
  63. public boolean check(int i, int j) throws IllegalArgumentException {
  64. List<Integer> l = listaSasiedztwa.get(i);
  65.  
  66. if (l.contains(j)) {
  67. return true;
  68. }
  69.  
  70. return false;
  71. }
  72.  
  73. @Override
  74. public void dfs() {
  75. Stack<Integer> stos = new Stack<>();
  76. boolean[] odwiedzone = new boolean[this.iloscWierzcholkow];
  77. stos.add(0);
  78. this.odwiedzaj(0);
  79. odwiedzone[0] = true;
  80.  
  81.  
  82. while (!stos.isEmpty()) {
  83. int v = stos.pop();
  84. for (int i = iloscWierzcholkow - 1; i >= 0; i--) {
  85. if (this.check(v, i) && !odwiedzone[i]) {
  86. odwiedzone[i] = true;
  87. stos.add(i);
  88. System.out.println(i);
  89. }
  90. }
  91.  
  92. }
  93. }
  94.  
  95. @Override
  96. protected void odwiedzaj(int wierzcholek) {
  97. System.out.println(wierzcholek);
  98. }
  99.  
  100. @Override
  101. public LGraph transpose() {
  102. Klasa temp = new Klasa(this.iloscWierzcholkow);
  103. for (int i = 0; i < iloscWierzcholkow; i++) {
  104. for (int j = 0; j < iloscWierzcholkow; ++j) {
  105. if (check(i, j)) {
  106. temp.addEdge(j, i);
  107. }
  108. }
  109.  
  110. }
  111. return temp;
  112. }
  113.  
  114. public static void main(String[] args) {
  115. Klasa kl = new Klasa(11);
  116. kl.addEdge(0,1);
  117. kl.addEdge(1,2);
  118. kl.addEdge(1,3);
  119. kl.addEdge(2,5);
  120. kl.addEdge(2,4);
  121. kl.addEdge(3,6);
  122. // 0 2 3 1 4
  123.  
  124. kl.writeMatrix();
  125. System.out.println();
  126. kl.writeList();
  127.  
  128. System.out.println();
  129. kl.dfs();
  130.  
  131. System.out.println();
  132. LGraph temp = kl.transpose();
  133. temp.writeMatrix();
  134. }
  135.  
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement