DamSi

Untitled

Nov 8th, 2015
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.26 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. /**
  6.  *
  7.  * @author Damjan
  8.  */
  9. public class DivideOddEven {
  10.  
  11.     public static void main(String[] args) throws IOException {
  12.         BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  13.         String s = stdin.readLine();
  14.         int N = Integer.parseInt(s);
  15.         DLL<Integer> lista = new DLL<>();
  16.         s = stdin.readLine();
  17.         String[] pomniza = s.split(" ");
  18.         for (int i = 0; i < N; i++) {
  19.             lista.insertLast(Integer.parseInt(pomniza[i]));
  20.         }
  21.         DLL<Integer> parni = najdiParni(lista);
  22.         DLL<Integer> neparni = najdiNeparni(lista);
  23.        
  24.         DLLNode<Integer> jazolNeparni = neparni.getFirst();
  25.         DLLNode<Integer> jazolParni = parni.getFirst();
  26.        
  27.         while(jazolNeparni!=null){
  28.             System.out.print(jazolNeparni.element);
  29.             if(jazolNeparni.succ!=null){
  30.                 System.out.print(" ");
  31.             }
  32.             jazolNeparni = jazolNeparni.succ;
  33.         }
  34.         System.out.println();
  35.        while(jazolParni!=null){
  36.             System.out.print(jazolParni.element);
  37.             if(jazolParni.succ!=null){
  38.                 System.out.print(" ");
  39.             }
  40.             jazolParni = jazolParni.succ;
  41.         }
  42.  
  43.     }
  44.  
  45.     static DLL<Integer> najdiNeparni(DLL<Integer> lista) {
  46.         DLL<Integer> neparni = new DLL<>();
  47.         DLLNode<Integer> jazol = lista.getFirst();
  48.  
  49.         while (jazol != null) {
  50.             if (jazol.element % 2 != 0) {
  51.                 neparni.insertLast(jazol.element);
  52.             }
  53.             jazol = jazol.succ;
  54.         }
  55.  
  56.         return neparni;
  57.     }
  58.  
  59.     static DLL<Integer> najdiParni(DLL<Integer> lista) {
  60.         DLL<Integer> parni = new DLL<>();
  61.         DLLNode<Integer> jazol = lista.getFirst();
  62.  
  63.         while (jazol != null) {
  64.             if (jazol.element % 2 == 0) {
  65.                 parni.insertLast(jazol.element);
  66.             }
  67.             jazol = jazol.succ;
  68.         }
  69.  
  70.         return parni;
  71.     }
  72.  
  73. }
  74.  
  75. class DLL<E> {
  76.  
  77.     private DLLNode<E> first, last;
  78.  
  79.     public DLL() {
  80.         // Construct an empty SLL
  81.         this.first = null;
  82.         this.last = null;
  83.     }
  84.  
  85.     public void deleteList() {
  86.         first = null;
  87.         last = null;
  88.     }
  89.  
  90.     public int length() {
  91.         int ret;
  92.         if (first != null) {
  93.             DLLNode<E> tmp = first;
  94.             ret = 1;
  95.             while (tmp.succ != null) {
  96.                 tmp = tmp.succ;
  97.                 ret++;
  98.             }
  99.             return ret;
  100.         } else {
  101.             return 0;
  102.         }
  103.  
  104.     }
  105.  
  106.     public DLLNode<E> find(E o) {
  107.         if (first != null) {
  108.             DLLNode<E> tmp = first;
  109.             while (tmp.element != o&&tmp.succ != null) {
  110.                 tmp = tmp.succ;
  111.             }
  112.             if (tmp.element == o) {
  113.                 return tmp;
  114.             } else {
  115.                 System.out.println("Elementot ne postoi vo listata");
  116.             }
  117.         } else {
  118.             System.out.println("Listata e prazna");
  119.         }
  120.         return first;
  121.     }
  122.  
  123.     public void insertFirst(E o) {
  124.         DLLNode<E> ins = new DLLNode<E>(o, null, first);
  125.         if (first == null) {
  126.             last = ins;
  127.         } else {
  128.             first.pred = ins;
  129.         }
  130.         first = ins;
  131.     }
  132.  
  133.     public void insertLast(E o) {
  134.         if (first == null) {
  135.             insertFirst(o);
  136.         } else {
  137.             DLLNode<E> ins = new DLLNode<E>(o, last, null);
  138.             last.succ = ins;
  139.             last = ins;
  140.         }
  141.     }
  142.  
  143.     public void insertAfter(E o, DLLNode<E> after) {
  144.         if (after == last) {
  145.             insertLast(o);
  146.             return;
  147.         }
  148.         DLLNode<E> ins = new DLLNode<E>(o, after, after.succ);
  149.         after.succ.pred = ins;
  150.         after.succ = ins;
  151.     }
  152.  
  153.     public void insertBefore(E o, DLLNode<E> before) {
  154.         if (before == first) {
  155.             insertFirst(o);
  156.             return;
  157.         }
  158.         DLLNode<E> ins = new DLLNode<E>(o, before.pred, before);
  159.         before.pred.succ = ins;
  160.         before.pred = ins;
  161.     }
  162.  
  163.     public E deleteFirst() {
  164.         if (first != null) {
  165.             DLLNode<E> tmp = first;
  166.             first = first.succ;
  167.             if (first != null) {
  168.                 first.pred = null;
  169.             }
  170.             if (first == null) {
  171.                 last = null;
  172.             }
  173.             return tmp.element;
  174.         } else {
  175.             return null;
  176.         }
  177.     }
  178.  
  179.     public E deleteLast() {
  180.         if (first != null) {
  181.             if (first.succ == null) {
  182.                 return deleteFirst();
  183.             } else {
  184.                 DLLNode<E> tmp = last;
  185.                 last = last.pred;
  186.                 last.succ = null;
  187.                 return tmp.element;
  188.             }
  189.         }
  190.         // else throw Exception
  191.         return null;
  192.     }
  193.  
  194.     public E delete(DLLNode<E> node) {
  195.         if (node == first) {
  196.             deleteFirst();
  197.             return node.element;
  198.         }
  199.         if (node == last) {
  200.             deleteLast();
  201.             return node.element;
  202.         }
  203.         node.pred.succ = node.succ;
  204.         node.succ.pred = node.pred;
  205.         return node.element;
  206.  
  207.     }
  208.  
  209.     @Override
  210.     public String toString() {
  211.         String ret = new String();
  212.         if (first != null) {
  213.             DLLNode<E> tmp = first;
  214.             ret += tmp + " ";
  215.             while (tmp.succ != null) {
  216.                 tmp = tmp.succ;
  217.                 ret += tmp + " ";
  218.             }
  219.         } else {
  220.             ret = "Prazna lista!!!";
  221.         }
  222.         return ret;
  223.     }
  224.  
  225.     public String toStringR() {
  226.         String ret = new String();
  227.         if (last != null) {
  228.             DLLNode<E> tmp = last;
  229.             ret += tmp + "<->";
  230.             while (tmp.pred != null) {
  231.                 tmp = tmp.pred;
  232.                 ret += tmp + "<->";
  233.             }
  234.         } else {
  235.             ret = "Prazna lista!!!";
  236.         }
  237.         return ret;
  238.     }
  239.  
  240.     public DLLNode<E> getFirst() {
  241.         return first;
  242.     }
  243.  
  244.     public DLLNode<E> getLast() {
  245.  
  246.         return last;
  247.     }
  248.  
  249.     public static DLL<Integer> najdiNeparni(DLL<Integer> lista) {
  250.         DLL<Integer> rezultat = new DLL<>();
  251.         DLLNode<Integer> jazol = lista.getFirst();
  252.  
  253.         while (jazol != null) {
  254.             if (jazol.element % 2 != 0) {
  255.                 rezultat.insertLast(jazol.element);
  256.                 jazol = jazol.succ;
  257.             }
  258.         }
  259.  
  260.         return rezultat;
  261.     }
  262.  
  263.     public static DLL<Integer> najdiParni(DLL<Integer> lista) {
  264.         DLL<Integer> rezultat = new DLL<>();
  265.         DLLNode<Integer> jazol = lista.getFirst();
  266.  
  267.         while (jazol != null) {
  268.             if (jazol.element % 2 == 0) {
  269.                 rezultat.insertLast(jazol.element);
  270.                 jazol = jazol.succ;
  271.             }
  272.         }
  273.         return rezultat;
  274.     }
  275. }
  276. class DLLNode<E> {
  277.     protected E element;
  278.     protected DLLNode<E> pred, succ;
  279.  
  280.     public DLLNode(E elem, DLLNode<E> pred, DLLNode<E> succ) {
  281.         this.element = elem;
  282.         this.pred = pred;
  283.         this.succ = succ;
  284.     }
  285.  
  286.     @Override
  287.     public String toString() {
  288.         return element.toString();
  289.     }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment