示例#1
0
        public object Next()
        {
            Object elemento = Atual.GetElemento();

            Atual = Atual.GetProximo();
            return(elemento);
        }
示例#2
0
 public void Adiciona(int posicao, T elemento)
 {
     if (posicao <= 0 || posicao > Tamanho())
     {
         throw new Exception("A Posição " + posicao + " é Inválida!");
     }
     else if (posicao == Tamanho())
     {
         AdicionaFim(elemento);
         TamanhoLista++;
     }
     else
     {
         CelulaDupla  nova = new CelulaDupla(elemento);
         Iterador <T> it   = new Iterador <T>(Inicio);
         int          i    = 0;
         while (it.HasNext())
         {
             if (i != posicao - 1)
             {
                 it.Next();
                 i++;
             }
             else
             {
                 nova.SetAnterior(it.GetAtual());
                 nova.SetProximo(it.GetAtual().GetProximo());
                 it.GetAtual().SetProximo(nova);
                 it.GetAtual().GetProximo().GetProximo().SetAnterior(it.GetAtual().GetProximo());
                 i++;
             }
         }
         TamanhoLista++;
     }
 }
示例#3
0
        public void AdicionaFim(T elemento)
        {
            CelulaDupla nova = new CelulaDupla(elemento);

            if (TamanhoLista == 0)
            {
                Inicio = Fim = nova;
                TamanhoLista++;
            }
            else
            {
                nova.SetAnterior(Fim); //O anterior do novo Nó será o atual ultimo
                Fim.SetProximo(nova);  //O proximo do atual ultimo será o novo Nó
                Fim = nova;            // Atualiza-se o ultimo para o novo Nó
                TamanhoLista++;        // incrementa o tamanho da lista
            }
        }
示例#4
0
        //Método que adiciona no inicio da lista
        public void AdicionaInicio(T elemento)
        {
            CelulaDupla nova = new CelulaDupla(elemento);

            if (TamanhoLista == 0)
            {
                Inicio = Fim = nova;
                TamanhoLista++;
            }
            else
            {
                nova.SetProximo(Inicio);  //O próximo do novo Nó será o atual primeiro
                Inicio.SetAnterior(nova); //O anterior do atual primeiro será o novo Nó
                Inicio = nova;            // Atualiza-se o primeiro para o novo Nó
                TamanhoLista++;           // incrementa o tamanho da lista
            }
        }
示例#5
0
 public Iterador(CelulaDupla atual)
 {
     Atual = atual;
 }
示例#6
0
 //Método que limpa/apaga todas as posições da lista
 public void Limpar()
 {
     Inicio       = new CelulaDupla();
     Fim          = new CelulaDupla();
     TamanhoLista = 0;
 }