public void remove(TAD n) { if (isEmpty()) { Console.WriteLine("Lista vazia!! Impossível Remover!!"); } else { NohLista <TAD> aux = inicio; bool encontrou = false; do { if (aux.getData().Equals(n)) { encontrou = true; break; } else { aux = aux.getNext(); } } while (aux != null); if (encontrou) { if (aux.getPrior() == null && aux.getNext() == null) { inicio = null; fim = null; //Console.WriteLine("Item removido: " + aux.getData()); } else if (aux.getPrior() == null) { aux.getNext().setPrior(aux.getPrior()); inicio = aux.getNext(); //Console.WriteLine("Item removido: " + aux.getData()); } else if (aux.getNext() == null) { aux.getPrior().setNext(aux.getNext()); fim = aux.getPrior(); //Console.WriteLine("Item removido: " + aux.getData()); } else { aux.getPrior().setNext(aux.getNext()); aux.getNext().setPrior(aux.getPrior()); //Console.WriteLine("Item removido: " + aux.getData()); } } else { Console.WriteLine("Item não Encontrado!!"); } } }
public void inserirAntes(TAD elemento, TAD inserir) { NohLista <TAD> novoNoh = new NohLista <TAD>(inserir); if (isEmpty()) { inicio = novoNoh; fim = novoNoh; } else { NohLista <TAD> aux = inicio; bool encontrou = false; do { if (aux.getData().Equals(elemento)) { encontrou = true; break; } else { aux = aux.getNext(); } } while (aux != null); if (encontrou) { if (aux == inicio) { novoNoh.setNext(aux); aux.setPrior(novoNoh); inicio = novoNoh; } else { novoNoh.setPrior(aux.getPrior()); novoNoh.setNext(aux); aux.setPrior(novoNoh); novoNoh.getPrior().setNext(novoNoh); } } else { Console.WriteLine("Item não Encontrado!!"); } } }