Advertisement
mitkomitrov

Untitled

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