Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.18 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. public class DivideOddEven {
  8. public static void main(String[] args) throws IOException {
  9.  
  10. BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  11. String s = stdin.readLine();
  12. int N = Integer.parseInt(s);
  13. s = stdin.readLine();
  14. String[] pomniza = s.split(" ");
  15.  
  16. DLL<Integer> lista = new DLL<Integer>();
  17.  
  18. for (int i = 0; i < N; i++) {
  19. lista.insertLast(Integer.parseInt(pomniza[i]));
  20. }
  21.  
  22. DLL<Integer> listaParni = lista.Parni(lista);
  23. DLL<Integer> listaNeparni = lista.Neparni(lista);
  24.  
  25. Iterator<Integer> it = listaParni.iterator();
  26. while (it.hasNext()) {
  27. System.out.print(it.next());
  28. if(it.hasNext())
  29. System.out.print(" ");
  30. }
  31. System.out.println();
  32. Iterator<Integer> it2 = listaNeparni.iterator();
  33. while (it2.hasNext()) {
  34. System.out.print(it2.next());
  35. if(it2.hasNext())
  36. System.out.print(" ");
  37. }
  38. System.out.println();
  39. }
  40. }
  41. class DLL<E>{
  42.  
  43. private DLLNode<E> head;
  44. private DLLNode<E> last;
  45.  
  46. public DLL() {
  47. this.head = null;
  48. this.last = null;
  49. }
  50. public void deleteList() {
  51. this.head = null;
  52. this.last = null;
  53. }
  54. public Iterator<E> iterator() {
  55. return new LRIterator<E>();
  56. }
  57. class LRIterator<E> implements Iterator<E> {
  58.  
  59. private DLLNode<E> place, curr;
  60.  
  61. private LRIterator() {
  62. place = (DLLNode<E>)head;
  63. curr = null;
  64. }
  65. public boolean hasNext() {
  66. return (place != null);
  67. }
  68. public E next() {
  69. if(place == null) {
  70. throw new NoSuchElementException();
  71. }
  72. E nextElem = place.element;
  73. curr = place;
  74. place = place.next;
  75. return nextElem;
  76. }
  77. }
  78. public int length() {
  79. int count = 1;
  80. if(head != null) {
  81. DLLNode<E> temp = head;
  82. while(temp.next != null) {
  83. count++;
  84. temp = temp.next;
  85. }
  86. return count;
  87. }else {
  88. return 0;
  89. }
  90. }
  91. public DLL<Integer> Neparni(DLL<Integer> lista){
  92.  
  93. DLL<Integer> finalna = new DLL<Integer>();
  94. DLLNode<Integer> temp = lista.getFirst();
  95.  
  96. while(temp != null) {
  97. if(temp.element % 2 != 0) {
  98. finalna.insertLast(temp.element);
  99. }
  100. }
  101.  
  102. return finalna;
  103. }
  104. public DLL<Integer> Parni(DLL<Integer> lista){
  105.  
  106. DLL<Integer> finalna = new DLL<Integer>();
  107. DLLNode<Integer> temp = lista.getFirst();
  108.  
  109. while(temp != null) {
  110. if(temp.element % 2 == 0) {
  111. finalna.insertLast(temp.element);
  112. }
  113. }
  114.  
  115. return finalna;
  116. }
  117. public DLLNode<E> find(E o){
  118. if(head != null) {
  119. DLLNode<E> temp = head;
  120. while(temp.element != o || temp.next != null) {
  121. temp = temp.next;
  122. }
  123. if(temp.element == o) {
  124. return temp;
  125. } else {
  126. System.out.println("Elementot ne postoi vo listata");
  127. }
  128. } else {
  129. System.out.println("Listata e prazna");
  130. }
  131. return head;
  132. }
  133. public void insertFirst(E o) {
  134. DLLNode<E> insert = new DLLNode<E>(o, null, head);
  135. if(head == null) {
  136. last = insert;
  137. } else {
  138. head.prev = insert;
  139. head = insert;
  140. }
  141. }
  142. public void insertLast(E o) {
  143. DLLNode<E> insert = new DLLNode<E>(o, last, null);
  144. if(head == null) {
  145. insertFirst(o);
  146. } else {
  147. last.next = insert;
  148. last = insert;
  149. }
  150. }
  151. public void insertAfter(E o, DLLNode<E> after) {
  152. DLLNode<E> insert = new DLLNode<E>(o, null, null);
  153. if(last == after) {
  154. insertLast(o);
  155. return;
  156. }
  157. DLLNode<E> temp = after.next;
  158. after.next = insert;
  159. insert.next = temp;
  160. }
  161. public void insertBefore(E o, DLLNode<E> before) {
  162. DLLNode<E> insert = new DLLNode<E>(o, null, null);
  163. if(head == before) {
  164. insertFirst(o);
  165. return;
  166. }
  167.  
  168. DLLNode<E> temp = before.prev.next;
  169. temp.next = insert;
  170. insert.next = before;
  171. }
  172. public void deleteFirst() {
  173. if(head == null) {
  174. return;
  175. }
  176. if(head == last) {
  177. head = null;
  178. return;
  179. }
  180. head = head.next;
  181. }
  182. public void deleteLast() {
  183. if(last.prev == head) {
  184. deleteFirst();
  185. return;
  186. }
  187. last.prev.next = null;
  188. last = last.prev;
  189. }
  190. public void delete(DLLNode<E> del) {
  191. if(del == head) {
  192. deleteFirst();
  193. return;
  194. }
  195. if(del == last) {
  196. deleteLast();
  197. return;
  198. }
  199. del.prev.next = del.next;
  200. del.next.prev = del.prev;
  201. }
  202. @Override
  203. public String toString() {
  204. String s = new String();
  205. if(head != null) {
  206. DLLNode<E> temp = head;
  207. while(temp.next != null) {
  208. s += temp + "<->";
  209. temp = temp.next;
  210. }
  211. s+= temp;
  212. } else {
  213. s = "Listata e prazna";
  214. }
  215. return s;
  216. }
  217. public DLLNode<E> getFirst() {
  218. return head;
  219. }
  220. public DLLNode<E> getLast() {
  221. return last;
  222. }
  223. }
  224. class DLLNode<E>{
  225.  
  226. protected E element;
  227. protected DLLNode<E> next;
  228. protected DLLNode<E> prev;
  229.  
  230. public DLLNode(E element, DLLNode<E> prev, DLLNode<E> next) {
  231. this.element = element;
  232. this.next = next;
  233. this.prev = prev;
  234. }
  235.  
  236. @Override
  237. public String toString() {
  238. return this.element.toString();
  239. }
  240.  
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement