Advertisement
mitkomitrov

Untitled

Aug 28th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. СПОЈ ЛИСТИ
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6.  
  7. class SLLNode<E>
  8. {
  9. E element;
  10. SLLNode<E> succ;
  11.  
  12. public SLLNode(E element, SLLNode<E> succ) {
  13. this.element = element;
  14. this.succ = succ;
  15. }
  16. }
  17. class SLL<E>
  18. {
  19. private SLLNode<E> first;
  20.  
  21. public SLL()
  22. {
  23. first = null;
  24. }
  25. public void insertFirst(E element)
  26. {
  27. SLLNode<E> nov = new SLLNode(element,first);
  28. first = nov;
  29. }
  30. public void insertLast(E element)
  31. {
  32. if(first==null)
  33. {
  34. insertFirst(element);
  35. }
  36. else
  37. {
  38. SLLNode<E> nov = new SLLNode(element,null);
  39. SLLNode<E> dvizi = first;
  40. while(dvizi.succ!=null)
  41. {
  42. dvizi = dvizi.succ;
  43. }
  44. dvizi.succ = nov;
  45. }
  46. }
  47. @Override
  48. public String toString()
  49. {
  50. SLLNode<E> dvizi = first;
  51. String s = new String();
  52. while(dvizi!=null)
  53. {
  54. s = s + dvizi.element+" ";
  55. dvizi= dvizi.succ;
  56. }
  57. return s;
  58. }
  59. public SLLNode<E> getFirst()
  60. {
  61. return first;
  62. }
  63. }
  64. public class SpoiListi {
  65.  
  66. public static void brisiDuplikati(SLL<Integer> lista)
  67. {
  68. SLLNode<Integer> dvizi = lista.getFirst();
  69. while(dvizi!=null)
  70. {
  71. SLLNode<Integer> sled = dvizi.succ;
  72. SLLNode<Integer> pred = dvizi;
  73. while(sled!=null)
  74. {
  75. if(dvizi.element.equals(sled.element))
  76. {
  77. pred.succ = sled.succ;
  78. }
  79. else
  80. {
  81. pred = sled;
  82. }
  83. sled = sled.succ;
  84. }
  85. dvizi = dvizi.succ;
  86. }
  87. }
  88. public static SLL<Integer> spoiListi(SLL<Integer> l1,SLL<Integer> l2)
  89. {
  90. SLL<Integer> result = null;
  91. SLLNode<Integer> d1 = null;
  92. SLLNode<Integer> d2 = null;
  93. if(l1.getFirst().element < l2.getFirst().element)
  94. {
  95. result = l1;
  96. d1 = l1.getFirst();
  97. d2 = l2.getFirst();
  98. }
  99. else if(l1.getFirst().element > l2.getFirst().element)
  100. {
  101. result = l2;
  102. d1 = l2.getFirst();
  103. d2 = l1.getFirst();
  104. }
  105. else
  106. {
  107. result = l1;
  108. d1 = l1.getFirst();
  109. d2 = l2.getFirst().succ;
  110. }
  111. SLLNode<Integer> sled = null;
  112. while(d2!=null)
  113. {
  114. if(d1.succ!=null)
  115. {
  116. if(d1.succ.element > d2.element)
  117. {
  118. sled = d2.succ;
  119. d2.succ = d1.succ;
  120. d1.succ = d2;
  121. d1 = d2;
  122. d2 = sled;
  123. }
  124. else if(d1.succ.element < d2.element)
  125. {
  126. d1 =d1.succ;
  127. }
  128. else
  129. {
  130. d1 = d1.succ;
  131. d2 = d2.succ;
  132. }
  133. }
  134. else
  135. {
  136. d1.succ = d2;
  137. }
  138. }
  139. return result;
  140. }
  141. public static void main(String[] args) throws IOException{
  142. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  143. SLL<Integer> lista1 = new SLL();
  144. int N = Integer.parseInt(br.readLine());
  145. String line = br.readLine();
  146. String []pomNiza = line.split(" ");
  147. for (int i = 0; i < N; i++) {
  148. lista1.insertLast(Integer.parseInt(pomNiza[i]));
  149. }
  150. SLL<Integer> lista2 = new SLL();
  151. int M = Integer.parseInt(br.readLine());
  152. line = br.readLine();
  153. String []pomNiza1 = line.split(" ");
  154. for (int i = 0; i < M; i++) {
  155. lista2.insertLast(Integer.parseInt(pomNiza1[i]));
  156. }
  157. brisiDuplikati(lista1);
  158. brisiDuplikati(lista2);
  159. SLL<Integer> nova = spoiListi(lista1,lista2);
  160. System.out.println(nova);
  161. }
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement