public void Intercalar(int indice, ListaDuplaComNoCabeca <T> lista)
        {
            if (EstaVazia())
            {
                Primeira = lista.Primeira;
                Ultima   = lista.Ultima;
            }
            else if (indice == 0)
            {
                lista.Ultima.Proxima = Primeira;
                Primeira.Anterior    = lista.Ultima;
                Ultima         = lista.Primeira;
                lista.Primeira = Ultima;
                Primeira       = lista.Primeira;
            }
            else if (indice == TotalDeElementos)
            {
                Ultima.Proxima          = lista.Primeira;
                lista.Primeira.Anterior = Ultima;
                Primeira.Anterior       = lista.Ultima;
                lista.Ultima.Proxima    = Primeira;
                Ultima = lista.Primeira;
            }
            else
            {
                Celula <T> antecessora = PegarCelula(indice - 1);
                Celula <T> sucessora   = PegarCelula(indice);
                antecessora.Proxima     = lista.Primeira;
                lista.Primeira.Anterior = antecessora;
                lista.Ultima.Proxima    = sucessora;
                sucessora.Anterior      = lista.Ultima;
            }

            TotalDeElementos += lista.TotalDeElementos;
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            ListaDuplaComNoCabeca <int> list = new ListaDuplaComNoCabeca <int>();

            list.Adicionar(0);
            list.Adicionar(1);
            list.Adicionar(2);
            list.Adicionar(3);
            list.Adicionar(4);
            list.Adicionar(5);
            System.Console.WriteLine(list);
            ListaDuplaComNoCabeca <int> list2 = new ListaDuplaComNoCabeca <int>();

            list2.AdicionarNoComeco(100);
            list2.AdicionarNoComeco(100);
            list2.AdicionarNoComeco(100);
            System.Console.WriteLine(list2);
            list.Concatenar(list2);
            System.Console.WriteLine(list);
            list.Limpar();
            System.Console.WriteLine(list);
        }
 public void Concatenar(ListaDuplaComNoCabeca <T> lista)
 {
     Intercalar(TotalDeElementos, lista);
 }