public Comparable remove(int index) { checkIndex(index); // �ndice v�lido DLNode aux = getNode(index); Comparable removedElement = aux.getElement(); if (index == 0) { cabeca = (DLNode) aux.getNext(); if (cabeca == null) cauda = null; else cabeca.setPrev(null); aux.setNext(null); } else { Node prev = aux.getPrev(); Node prox = aux.getNext(); prev.setNext(prox); if (prox != null) ((DLNode) prox).setPrev(prev); else cauda = (DLNode) prev; aux.setNext(null); aux.setPrev(null); } size--; return removedElement; }
public void add(int index, Comparable theElement) { DLNode novo = new DLNode(theElement, null, null); if (index < 0 || index > size) throw new IndexOutOfBoundsException("index = " + index + " size = " + size); if (index == 0) { novo.setNext(cabeca); if (cabeca != null) cabeca.setPrev(novo); else cauda = (DLNode) novo; cabeca = (DLNode) novo; } else { DLNode prev = (DLNode) getNode(index - 1); DLNode prox = (DLNode) prev.getNext(); prev.setNext(novo); novo.setPrev(prev); novo.setNext(prox); if (prox != null) prox.setPrev(novo); else cauda = (DLNode) novo; } size++; }