Advertisement
Guest User

Smenisosedi

a guest
Sep 17th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.44 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 succ)
  11. {
  12. this.element = element;
  13. this.succ = succ;
  14. }
  15. }
  16.  
  17. class SLL<E>
  18. {
  19. SLLNode<E> first;
  20.  
  21. public SLL()
  22. {
  23. first = null;
  24. }
  25.  
  26. public void insertFirst(E element)
  27. {
  28. SLLNode<E> nov = new SLLNode(element,first);
  29. first = nov;
  30. }
  31. public void insertLast(E element)
  32. {
  33. if(first==null)
  34. {
  35. insertFirst(element);
  36. }
  37. else
  38. {
  39. SLLNode<E> nov = new SLLNode(element,null);
  40. SLLNode<E> dvizi = first;
  41. while(dvizi.succ!=null)
  42. {
  43. dvizi = dvizi.succ;
  44. }
  45. dvizi.succ = nov;
  46. }
  47. }
  48.  
  49.  
  50. public void insertAfter(E o, SLLNode<E> node) {
  51. if (node != null) {
  52. SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  53. node.succ = ins;
  54. } else {
  55. System.out.println("Dadenot jazol e null");
  56. }
  57. }
  58.  
  59. public void insertBefore(E o, SLLNode<E> before) {
  60.  
  61. if (first != null) {
  62. SLLNode<E> tmp = first;
  63. if(first==before){
  64. this.insertFirst(o);
  65. return;
  66. }
  67. //ako first!=before
  68. while (tmp.succ != before)
  69. tmp = tmp.succ;
  70. if (tmp.succ == before) {
  71. SLLNode<E> ins = new SLLNode<E>(o, before);
  72. tmp.succ = ins;
  73. } else {
  74. System.out.println("Elementot ne postoi vo listata");
  75. }
  76. } else {
  77. System.out.println("Listata e prazna");
  78. }
  79. }
  80. public E deleteFirst() {
  81. if (first != null) {
  82. SLLNode<E> tmp = first;
  83. first = first.succ;
  84. return tmp.element;
  85. } else {
  86. System.out.println("Listata e prazna");
  87. return null;
  88. }
  89. }
  90.  
  91. public E delete(SLLNode<E> node) {
  92. if (first != null) {
  93. SLLNode<E> tmp = first;
  94. if(first ==node){
  95. return this.deleteFirst();
  96. }
  97. while (tmp.succ != node&&tmp.succ.succ != null)
  98. tmp = tmp.succ;
  99. if (tmp.succ == node) {
  100. tmp.succ = tmp.succ.succ;
  101. return node.element;
  102. } else {
  103. System.out.println("Elementot ne postoi vo listata");
  104. return null;
  105. }
  106. } else {
  107. System.out.println("Listata e prazna");
  108. return null;
  109. }
  110.  
  111. }
  112. @Override
  113. public String toString()
  114. {
  115. String s = new String();
  116.  
  117. SLLNode<E> dvizi = first;
  118. while(dvizi!=null)
  119. {
  120. s = s + dvizi.element + " ";
  121. dvizi = dvizi.succ;
  122. }
  123. return s;
  124. }
  125.  
  126.  
  127. }
  128. public class SmeniSosediPEDZA {
  129.  
  130. public static void zameni(SLL<Integer>lista,int m)
  131. {
  132.  
  133.  
  134. SLLNode<Integer> dvizi= lista.first;
  135.  
  136.  
  137.  
  138. if(m!=1)
  139. {
  140. while(dvizi!=null)
  141. {
  142. SLLNode<Integer> dvizi1= dvizi.succ;
  143.  
  144.  
  145.  
  146. for(int i=1;i<m;i++)
  147. {
  148. SLLNode<Integer> d2= lista.first;
  149.  
  150. if(dvizi1!=null)
  151. {
  152. if(dvizi==lista.first)
  153. {
  154. lista.insertBefore(dvizi1.element, dvizi);
  155. dvizi=lista.first;
  156. lista.delete(dvizi1);
  157. if(dvizi1!=null)
  158. {
  159. dvizi1=dvizi1.succ;
  160. }
  161.  
  162. }
  163. else
  164. {
  165.  
  166. lista.insertBefore(dvizi1.element, dvizi);
  167. lista.delete(dvizi1);
  168. while(d2.succ!=dvizi)
  169. {
  170. d2=d2.succ;
  171. }
  172. dvizi=d2;
  173. if(dvizi1!=null)
  174. {
  175. dvizi1=dvizi1.succ;
  176. }
  177. }
  178. }
  179. }
  180. dvizi=dvizi1;
  181. }
  182. }
  183. else
  184. {
  185. System.out.println(lista);
  186. }
  187.  
  188.  
  189. System.out.println(lista);
  190.  
  191. }
  192.  
  193. public static void main(String[] args)throws IOException {
  194.  
  195. BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
  196.  
  197. int N=Integer.parseInt(stdin.readLine());
  198.  
  199. String s=stdin.readLine();
  200.  
  201. String []pom=s.split(" ");
  202.  
  203. SLL<Integer>lista=new SLL();
  204.  
  205. for(int i=0;i<N;i++)
  206. {
  207. lista.insertLast(Integer.parseInt(pom[i]));
  208. }
  209. int M=Integer.parseInt(stdin.readLine());
  210.  
  211. zameni(lista, M);
  212.  
  213. }
  214.  
  215.  
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement