Beispiel #1
0
 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!!");
         }
     }
 }
Beispiel #2
0
        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!!");
                }
            }
        }