Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class DivideOddEven {
  6.  
  7. public static class DLLNode<E>{
  8. protected E element;
  9. protected DLLNode<E> pred, succ;
  10. public DLLNode(E elem, DLLNode<E> pred, DLLNode<E>succ)
  11. {
  12. this.element = elem;
  13. this.pred = pred;
  14. this.succ= succ;
  15. }
  16. }
  17.  
  18. public static class DLL<E>
  19. {
  20. private DLLNode<E> first, last;
  21. //empty list
  22. public DLL(){
  23. this.first = null;
  24. this.last= null;
  25. }
  26.  
  27. public void insertFirst(E o)
  28. {
  29. DLLNode<E> ins = new DLLNode<E>(o,null,first);
  30. if(first==null)
  31. last=ins;
  32. else
  33. first.pred =ins;
  34. first= ins;
  35. }
  36.  
  37. public void insertLast(E o)
  38. {
  39. if(first==null)
  40. insertFirst(o);
  41. else
  42. {
  43. DLLNode<E> ins = new DLLNode<E>(o, last, null);
  44. last.succ = ins;
  45. last=ins;
  46.  
  47. }
  48. }
  49.  
  50. public E deleteFirst()
  51. {
  52. if (first!=null)
  53. {
  54. DLLNode<E> temp= first;
  55. first = first.succ;
  56. first.pred = null;
  57. if(first==null)
  58. last=null;
  59. return temp.element;
  60. }
  61. else return null;
  62.  
  63. }
  64.  
  65. public E deleteLast()
  66. {
  67. if(first!=null){
  68. if(first.succ==null)
  69. return deleteFirst();
  70. else
  71. {
  72. DLLNode<E> temp = last;
  73. last = last.pred;
  74. last.succ=null;
  75. return temp.element;
  76. }
  77. }
  78.  
  79.  
  80. }
  81.  
  82. public void insertBefore(E o, DLLNode<E> before)
  83. {
  84. if(before == first){
  85. insertFirst(o);
  86. return;
  87. }
  88. DLLNode<E> ins= new DLLNode<E>(o, before.pred, before);
  89. before.pred.succ= ins;
  90. before.pred= ins;
  91.  
  92. }
  93.  
  94. public E delete(DLLNode<E> node)
  95. {
  96. if(node==first)
  97. {
  98. deleteFirst();
  99. // return node.element;
  100.  
  101. }
  102. if(node==last)
  103. {
  104. deleteLast();
  105. // return node.element;
  106. }
  107. node.pred.succ=node.succ;
  108. node.succ.pred=node.pred;
  109. // return node.element;
  110.  
  111. }
  112. public DLL<Integer> parni(DLL<Integer> list)
  113. {
  114. DLL<Integer> ins = new DLL<Integer>();
  115. ins=list;
  116. DLLNode<Integer> temp = ins.first; //???
  117.  
  118. while(temp!=null)
  119. {
  120. while(temp.succ!=null)
  121. {
  122. if(temp.element % 2 ==0)
  123. temp= temp.succ;
  124. else
  125. {
  126.  
  127.  
  128. temp=temp.succ;
  129. this.delete(temp.pred);
  130. }
  131.  
  132. }
  133. if(temp.succ==null)
  134. {
  135. if(temp.element % 2 ==0)
  136. {
  137. }
  138. else
  139. this.delete(temp);
  140. }
  141. }
  142. return ins;
  143.  
  144.  
  145. }
  146. public DLL<Integer> neparni(DLL<Integer> list)//DLL<Integer> ()
  147. {
  148. DLL<Integer> ins = new DLL<Integer>();
  149. ins= list;
  150. DLLNode<Integer> temp = ins.first; //???
  151.  
  152. while(temp!=null)
  153. {
  154. if(temp.element % 2 ==0)
  155. {
  156. temp=temp.succ;
  157. this.delete(temp.pred);
  158. }
  159. else
  160. {
  161. temp= temp.succ;
  162. }
  163. }
  164. return ins;
  165.  
  166.  
  167. }
  168.  
  169. public void print()
  170. {
  171. DLLNode<E> t = first;
  172. while(t!=null)
  173. {
  174. System.out.println(t.element);
  175. }
  176. }
  177.  
  178.  
  179.  
  180.  
  181. }
  182.  
  183.  
  184. public static void main(String[] args) throws IOException {
  185.  
  186. BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  187. String s = stdin.readLine();
  188. int N = Integer.parseInt(s);
  189. s = stdin.readLine();
  190. String[] pomniza = s.split(" ");
  191. DLL<Integer> lista=new DLL<Integer>();
  192. for (int i = 0; i < N; i++) {
  193. lista.insertLast(Integer.parseInt(pomniza[i]));
  194. }
  195.  
  196. DLL<Integer> nep = new DLL<Integer>();
  197. nep=lista;
  198. nep.neparni(lista); //???
  199.  
  200. DLL<Integer> parni = new DLL<Integer>();
  201. parni = parni(lista);
  202.  
  203. nep.print();
  204. parni.print();
  205.  
  206.  
  207.  
  208.  
  209. }
  210.  
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement