001package components.list; 002 003import java.util.Iterator; 004import java.util.NoSuchElementException; 005 006/** 007 * {@code List} represented as a doubly linked list, done "bare-handed", with 008 * implementations of primary methods. 009 * 010 * <p> 011 * Execution-time performance of all methods implemented in this class is O(1). 012 * </p> 013 * 014 * @param <T> 015 * type of {@code List} entries 016 * @convention <pre> 017 * $this.leftLength >= 0 and 018 * [$this.rightLength >= 0] and 019 * [$this.preStart is not null] and 020 * [$this.lastLeft is not null] and 021 * [$this.postFinish is not null] and 022 * [$this.preStart points to the first node of a doubly linked list 023 * containing ($this.leftLength + $this.rightLength + 2) nodes] and 024 * [$this.lastLeft points to the ($this.leftLength + 1)-th node in 025 * that doubly linked list] and 026 * [$this.postFinish points to the last node in that doubly linked list] and 027 * [for every node n in the doubly linked list of nodes, except the one 028 * pointed to by $this.preStart, n.previous.next = n] and 029 * [for every node n in the doubly linked list of nodes, except the one 030 * pointed to by $this.postFinish, n.next.previous = n] 031 * </pre> 032 * @correspondence <pre> 033 * this = 034 * ([data in nodes starting at $this.preStart.next and running through 035 * $this.lastLeft], 036 * [data in nodes starting at $this.lastLeft.next and running through 037 * $this.postFinish.previous]) 038 * </pre> 039 */ 040public class List3<T> extends ListSecondary<T> { 041 042 /* 043 * 2221/2231 assignment code deleted. 044 */ 045 046}