/media/sda-magnetic/david/Extern-Magnetic-2022-06-29/Extern01/Dokumente-2020-11-16/disk10-ab-2020-01-10/02-debian-pc2-work/informatik/java-new/test-param-2020-11-16-2/TestParam01.java


public class TestParam01 {
    public static void main (String [] args) {
    
    }
static class LinkedList1618<ET> {
    private Entry<ET> header = new Entry<ET>(null, null, null);

    private int size = 0;

    public LinkedList1618() {
        header.next = header;
        header.previous = header;
    }

    public ET getLast() {
        if (size == 0) throw new java.util.NoSuchElementException();
        return header.previous.element;
    }

    public ET removeLast() {
        Entry<ET> lastEntry = header.previous;
        if (lastEntry == header) throw new java.util.NoSuchElementException();
        lastEntry.previous.next = lastEntry.next;
        lastEntry.next.previous = lastEntry.previous;
        size--;
        return lastEntry.element;
    }

    public void addLast(ET e) {
        Entry<ET> newEntry = new Entry<ET>(e, header, header.previous);
        header.previous.next = newEntry;
        header.previous = newEntry;
        size++;
    }

    public int size() {
        return size;
    }

    private static class Entry<T> {
        private T element;

        private Entry<T> next;

        private Entry<T> previous;

        private Entry(T element, Entry<T> next, Entry<T> previous) {
            this.element = element;
            this.next = next;
            this.previous = previous;
        }
    }

    public class ListIterator {
        private int nextIndex = 0;

        private Entry<ET> next = header.next;

        boolean hasNext() {
            return nextIndex != size;
        }

        ET next() {
            if (nextIndex == size) throw new java.util.NoSuchElementException();
            ET elem = next.element;
            next = next.next;
            nextIndex++;
            return elem;
        }
    }

    public ListIterator listIterator() {
        return new ListIterator();
    }
}
}