rooq37

Grafik

Dec 4th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. ***Graf.java***
  2.  
  3. import java.util.List;
  4.  
  5. public interface Graf<W, S> {
  6. public List<W> wierzcholki(); //zwraca wszystkie wierzcholki grafu
  7.  
  8. public S krawedz(W w1, W w2); //pobiera etykietę krawędzi pomiędzy wierzchołkami
  9. //wartość NULL oznacza brak krawędzi
  10.  
  11. public List<W> krawedzie(W w); //zwraca wierzchołki, do których istnieje krawędz z w
  12. }
  13.  
  14. ***GrafSkierowany.java***
  15.  
  16. import java.util.ArrayList;
  17. import java.util.List;
  18.  
  19. /**
  20. * Created by Mateusz on 2017-12-04.
  21. */
  22. public class GrafSkierowany<W,S> implements Graf<W,S> {
  23. private List<W> listaWierzcholkow;
  24. private List<List<W>> listaSasiedztwaWierzcholkow;
  25. private List<List<S>> listaSasiedztwaKrawedzi;
  26.  
  27. public GrafSkierowany(List<W> lW, List<List<W>> lSW, List<List<S>> lSK){
  28. listaWierzcholkow = lW;
  29. listaSasiedztwaWierzcholkow = lSW;
  30. listaSasiedztwaKrawedzi = lSK;
  31. }
  32.  
  33. @Override
  34. public List<W> wierzcholki(){
  35. return listaWierzcholkow;
  36. }
  37.  
  38. @Override
  39. public S krawedz(W w1, W w2){
  40. int i=0;
  41. for(;i<listaWierzcholkow.size();i++){
  42. if(w1.equals(listaWierzcholkow.get(i))){
  43. break;
  44. }
  45. }
  46. for(int j=0; j<listaSasiedztwaWierzcholkow.get(i).size();j++){
  47. if(w2.equals(listaSasiedztwaWierzcholkow.get(i).get(j))){
  48. return listaSasiedztwaKrawedzi.get(i).get(j);
  49. }
  50. }
  51. return null;
  52. }
  53.  
  54. @Override
  55. public List<W> krawedzie(W w){
  56. int i=0;
  57. for(;i<listaWierzcholkow.size();i++){
  58. if(w.equals(listaWierzcholkow.get(i))){
  59. break;
  60. }
  61. }
  62. return listaSasiedztwaWierzcholkow.get(i);
  63. }
  64. }
  65.  
  66. ***GrafTest.java***
  67.  
  68. import java.util.ArrayList;
  69. import java.util.List;
  70.  
  71. public class GrafTest {
  72. public static void main(String[] args) {
  73. Integer w1 = new Integer(1);
  74. Integer w2 = new Integer(2);
  75. Integer w3 = new Integer(3);
  76. String k1_2 = new String("1do2");
  77. String k1_3 = new String("1do3");
  78. String k2_3 = new String("2do3");
  79. String k3_1 = new String("3do1");
  80.  
  81. List<Integer> lW = new ArrayList<Integer>();
  82. lW.add(w1);
  83. lW.add(w2);
  84. lW.add(w3);
  85.  
  86. List<List<Integer>> lSW = new ArrayList<List<Integer>>();
  87. List<List<String>> lSK = new ArrayList<List<String>>();
  88. for(int i=0; i<3; i++){
  89. lSW.add(new ArrayList<Integer>());
  90. lSK.add(new ArrayList<String>());
  91. }
  92.  
  93. lSW.get(0).add(w2);
  94. lSW.get(0).add(w3);
  95. lSW.get(1).add(w3);
  96. lSW.get(2).add(w1);
  97.  
  98. lSK.get(0).add(k1_2);
  99. lSK.get(0).add(k1_3);
  100. lSK.get(1).add(k2_3);
  101. lSK.get(2).add(k3_1);
  102.  
  103.  
  104. GrafSkierowany<Integer, String> test = new GrafSkierowany(lW,lSW,lSK);
  105.  
  106. for(int i=0; i<test.wierzcholki().size();i++){
  107. System.out.print(test.wierzcholki().get(i)+", ");
  108. }
  109. System.out.println();
  110. System.out.println(test.krawedz(w1,w2));
  111. System.out.println(test.krawedz(w1,w3));
  112. System.out.println(test.krawedz(w2,w3));
  113. System.out.println(test.krawedz(w3,w1));
  114.  
  115. for(int i=0; i<test.krawedzie(w1).size();i++){
  116. System.out.print(test.krawedzie(w1).get(i)+", ");
  117. }
  118. System.out.println();
  119.  
  120. for(int i=0; i<test.krawedzie(w2).size();i++){
  121. System.out.print(test.krawedzie(w2).get(i)+", ");
  122. }
  123. System.out.println();
  124.  
  125. for(int i=0; i<test.krawedzie(w3).size();i++){
  126. System.out.print(test.krawedzie(w3).get(i)+", ");
  127. }
  128. System.out.println();
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment