kacci97

Спој листи

Oct 17th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Iterator;
  5. import java.util.NoSuchElementException;
  6.  
  7. class SLLNode<E>{
  8. E value;
  9. SLLNode<E> next;
  10.  
  11. SLLNode(E value, SLLNode<E> next){
  12. this.value = value;
  13. this.next = next;
  14. }
  15. }
  16.  
  17. class SLL<E>{
  18. private SLLNode<E> first;
  19. SLL(){first = null;}
  20.  
  21. public void insertFirst(E value) {
  22. SLLNode<E> prv = new SLLNode<>(value, null);
  23. first = prv;
  24. }
  25.  
  26. public void insertLast(E value) {
  27. if(first == null)insertFirst(value);
  28. else {
  29. SLLNode<E> dvizi = first;
  30. while(dvizi.next != null) dvizi = dvizi.next;
  31.  
  32. SLLNode<E> nov = new SLLNode<>(value, null);
  33. dvizi.next = nov;
  34. }
  35. }
  36.  
  37. public String toString() {
  38. String s = new String();
  39. SLLNode<E> dvizi = first;
  40. while(dvizi != null) {
  41. s+=dvizi.value+" ";
  42. dvizi = dvizi.next;
  43. }
  44. return s;
  45. }
  46. public SLLNode<E> getFirst(){return first;}
  47. public SLL<E> deleteDuplicates(){
  48. SLL<E> nova = new SLL<>();
  49. SLLNode<E> dvizi = first;
  50.  
  51. while(dvizi.next != null) {
  52. if(dvizi.value != dvizi.next.value) {
  53. nova.insertLast(dvizi.value);
  54. }
  55. dvizi = dvizi.next;
  56. }
  57. nova.insertLast(dvizi.value);
  58. return nova;
  59. }
  60.  
  61. }
  62.  
  63.  
  64. public class SLLJoinLists {
  65.  
  66. private static SLL<Integer> joinLists(SLL<Integer> list1, SLL<Integer> list2){
  67. SLL<Integer> spoeni = new SLL<>();
  68. SLLNode<Integer> dvizi1 = list1.getFirst();
  69. SLLNode<Integer> dvizi2 = list2.getFirst();
  70.  
  71. while(dvizi1 != null || dvizi2 != null) {
  72. if(dvizi1 != null&&dvizi2 != null) {
  73. if(dvizi1.value < dvizi2.value) {
  74. spoeni.insertLast(dvizi1.value);
  75. dvizi1 = dvizi1.next;
  76. }else {
  77. spoeni.insertLast(dvizi2.value);
  78. dvizi2 = dvizi2.next;
  79. }
  80. }else {
  81. if(dvizi1 != null) {
  82. spoeni.insertLast(dvizi1.value);
  83. dvizi1 = dvizi1.next;
  84. }
  85. if(dvizi2 != null) {
  86. spoeni.insertLast(dvizi2.value);
  87. dvizi2 = dvizi2.next;
  88. }
  89. }
  90.  
  91. }
  92. return spoeni;
  93. }
  94.  
  95.  
  96. public static void main(String[] args) throws IOException {
  97.  
  98. BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  99. String s = stdin.readLine();
  100. int N = Integer.parseInt(s);
  101. s = stdin.readLine();
  102. String[] pomniza = s.split(" ");
  103. SLL<Integer> lista1 = new SLL<Integer>();
  104. SLL<Integer> lista2 = new SLL<Integer>();
  105. SLL<Integer> spoeni = new SLL<Integer>();
  106. for (int i = 0; i < N; i++) {
  107. lista1.insertLast(Integer.parseInt(pomniza[i]));
  108. }
  109.  
  110. s = stdin.readLine();
  111. N = Integer.parseInt(s);
  112. s = stdin.readLine();
  113. pomniza = s.split(" ");
  114. for (int i = 0; i < N; i++) {
  115. lista2.insertLast(Integer.parseInt(pomniza[i]));
  116. }
  117. spoeni = joinLists(lista1, lista2);
  118. spoeni = spoeni.deleteDuplicates();
  119. System.out.println(spoeni.toString());
  120. }
  121. }
Add Comment
Please, Sign In to add comment