Exemplo n.º 1
0
    public void InserePosicaoI(int i, ElementoListaDupla elemento)
    {
        ElementoListaDupla anteriorAux = this.LocalizaElementoI(i - 1);
        ElementoListaDupla aux         = anteriorAux.proximo;

        elemento.proximo    = aux;
        elemento.anterior   = anteriorAux;
        aux.anterior        = elemento;
        anteriorAux.proximo = elemento;
    }
Exemplo n.º 2
0
    public ElementoLista LocalizaElementoI(int i)
    {
        int count = 0;
        ElementoListaDupla aux = primeiro;

        do
        {
            aux = aux.proximo;
            count++;
        }while (count != i);

        return(aux);
    }
Exemplo n.º 3
0
    public ElementoListaDupla RetiraElementoI(int i)
    {
        ElementoListaDupla anteriorAux = this.LocalizaElementoI(i - 1);
        ElementoListaDupla aux         = anteriorAux.proximo;
        ElementoListaDupla proximoAux  = aux.proximo;

        anteriorAux.proximo = aux.proximo;
        aux.proximo         = null;
        proximoAux.anterior = aux.anterior;
        aux.anterior        = null;

        return(aux);
    }
Exemplo n.º 4
0
 public void InsereFinal(ElementoListaDupla elemento)
 {
     ultimo.proximo    = elemento;
     elemento.anterior = ultimo;
     elemento.proximo  = null;
 }
Exemplo n.º 5
0
 public ListaDuplamenteEncadeada()
 {
     sentinela = new ElementoListaDupla();
     primeiro  = ultimo = sentinela;
 }