// // Created by Julio Tentor // public class SimpleLinkedOrderedList> extends SimpleLinkedList implements ILinkedOrderedList { //region Constructors public SimpleLinkedOrderedList() { super(); } //endregion //region Ordered List Methods public void addInOrder(ELEMENT item) { if (this.size() == 0) { this.head = this.tail = new Node(item, null); ++this.count; } else { if (item.compareTo(this.head.item) <= 0) { this.addFirst(item); } else { if (item.compareTo(this.tail.item) > 0) { this.addLast(item); } else { Node skip = this.head; while ((skip != null) && (skip.next != null) && (item.compareTo(skip.next.item) > 0)) { skip = skip.next; } if (skip == null) { throw new RuntimeException("Algo está mal en el orden de los elementos de la lista..."); } else { Node temp = new Node(item, skip.next); skip.next = temp; ++this.count; } } } } } // public boolean findAndRemove(ELEMENT item) { // if (this.size() == 0) { // return false; // } // // DoubleLinkedList.Node skip = this.head; // while ((skip != null) && !(item.compareTo(skip.item) == 0)) { // skip = skip.next; // } // if (skip == null) { // return false; // } // else { // if (skip.prev == null) { // this.removeFirst(); // return true; // } // else { // if (skip.next == null) { // this.removeLast(); // return true; // } // else { // skip.prev.next = skip.next; // skip.next.prev = skip.prev; // skip.prev = skip.next = null; // return true; // } // } // } // } //endregion }