Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Iterator;
- import java.util.NoSuchElementException;
- public class DivideOddEven {
- public static void main(String[] args) throws IOException {
- BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
- String s = stdin.readLine();
- int N = Integer.parseInt(s);
- s = stdin.readLine();
- String[] pomniza = s.split(" ");
- DLL<Integer> lista = new DLL<Integer>();
- for (int i = 0; i < N; i++) {
- lista.insertLast(Integer.parseInt(pomniza[i]));
- }
- DLL<Integer> listaParni = lista.Parni(lista);
- DLL<Integer> listaNeparni = lista.Neparni(lista);
- Iterator<Integer> it = listaParni.iterator();
- while (it.hasNext()) {
- System.out.print(it.next());
- if(it.hasNext())
- System.out.print(" ");
- }
- System.out.println();
- Iterator<Integer> it2 = listaNeparni.iterator();
- while (it2.hasNext()) {
- System.out.print(it2.next());
- if(it2.hasNext())
- System.out.print(" ");
- }
- System.out.println();
- }
- }
- class DLL<E>{
- private DLLNode<E> head;
- private DLLNode<E> last;
- public DLL() {
- this.head = null;
- this.last = null;
- }
- public void deleteList() {
- this.head = null;
- this.last = null;
- }
- public Iterator<E> iterator() {
- return new LRIterator<E>();
- }
- class LRIterator<E> implements Iterator<E> {
- private DLLNode<E> place, curr;
- private LRIterator() {
- place = (DLLNode<E>)head;
- curr = null;
- }
- public boolean hasNext() {
- return (place != null);
- }
- public E next() {
- if(place == null) {
- throw new NoSuchElementException();
- }
- E nextElem = place.element;
- curr = place;
- place = place.next;
- return nextElem;
- }
- }
- public int length() {
- int count = 1;
- if(head != null) {
- DLLNode<E> temp = head;
- while(temp.next != null) {
- count++;
- temp = temp.next;
- }
- return count;
- }else {
- return 0;
- }
- }
- public DLL<Integer> Neparni(DLL<Integer> lista){
- DLL<Integer> finalna = new DLL<Integer>();
- DLLNode<Integer> temp = lista.getFirst();
- while(temp != null) {
- if(temp.element % 2 != 0) {
- finalna.insertLast(temp.element);
- }
- }
- return finalna;
- }
- public DLL<Integer> Parni(DLL<Integer> lista){
- DLL<Integer> finalna = new DLL<Integer>();
- DLLNode<Integer> temp = lista.getFirst();
- while(temp != null) {
- if(temp.element % 2 == 0) {
- finalna.insertLast(temp.element);
- }
- }
- return finalna;
- }
- public DLLNode<E> find(E o){
- if(head != null) {
- DLLNode<E> temp = head;
- while(temp.element != o || temp.next != null) {
- temp = temp.next;
- }
- if(temp.element == o) {
- return temp;
- } else {
- System.out.println("Elementot ne postoi vo listata");
- }
- } else {
- System.out.println("Listata e prazna");
- }
- return head;
- }
- public void insertFirst(E o) {
- DLLNode<E> insert = new DLLNode<E>(o, null, head);
- if(head == null) {
- last = insert;
- } else {
- head.prev = insert;
- head = insert;
- }
- }
- public void insertLast(E o) {
- DLLNode<E> insert = new DLLNode<E>(o, last, null);
- if(head == null) {
- insertFirst(o);
- } else {
- last.next = insert;
- last = insert;
- }
- }
- public void insertAfter(E o, DLLNode<E> after) {
- DLLNode<E> insert = new DLLNode<E>(o, null, null);
- if(last == after) {
- insertLast(o);
- return;
- }
- DLLNode<E> temp = after.next;
- after.next = insert;
- insert.next = temp;
- }
- public void insertBefore(E o, DLLNode<E> before) {
- DLLNode<E> insert = new DLLNode<E>(o, null, null);
- if(head == before) {
- insertFirst(o);
- return;
- }
- DLLNode<E> temp = before.prev.next;
- temp.next = insert;
- insert.next = before;
- }
- public void deleteFirst() {
- if(head == null) {
- return;
- }
- if(head == last) {
- head = null;
- return;
- }
- head = head.next;
- }
- public void deleteLast() {
- if(last.prev == head) {
- deleteFirst();
- return;
- }
- last.prev.next = null;
- last = last.prev;
- }
- public void delete(DLLNode<E> del) {
- if(del == head) {
- deleteFirst();
- return;
- }
- if(del == last) {
- deleteLast();
- return;
- }
- del.prev.next = del.next;
- del.next.prev = del.prev;
- }
- @Override
- public String toString() {
- String s = new String();
- if(head != null) {
- DLLNode<E> temp = head;
- while(temp.next != null) {
- s += temp + "<->";
- temp = temp.next;
- }
- s+= temp;
- } else {
- s = "Listata e prazna";
- }
- return s;
- }
- public DLLNode<E> getFirst() {
- return head;
- }
- public DLLNode<E> getLast() {
- return last;
- }
- }
- class DLLNode<E>{
- protected E element;
- protected DLLNode<E> next;
- protected DLLNode<E> prev;
- public DLLNode(E element, DLLNode<E> prev, DLLNode<E> next) {
- this.element = element;
- this.next = next;
- this.prev = prev;
- }
- @Override
- public String toString() {
- return this.element.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement