Exemplo n.º 1
0
        public ListaSimples <Dado> Juntar(
            ListaSimples <Dado> outra)
        {
            var lista3 = new ListaSimples <Dado>();

            this.atual  = this.primeiro;
            outra.atual = outra.primeiro;

            NoLista <Dado> aux = null;

            while (this.atual != null && outra.atual != null)
            {
                if (this.atual.Info.CompareTo(
                        outra.atual.Info) < 0)
                {
                    aux = this.atual.Prox;
                    lista3.InserirAposFim(this.atual);
                    this.atual = aux;
                    this.quantosNos--;
                }
                else
                if (outra.atual.Info.CompareTo(
                        this.atual.Info) < 0)
                {
                    aux = outra.atual.Prox;
                    lista3.InserirAposFim(outra.atual);
                    outra.atual = aux;
                    outra.quantosNos--;
                }
                else
                {
                    aux = this.atual.Prox;
                    lista3.InserirAposFim(this.atual);
                    this.atual  = aux;
                    outra.atual = outra.atual.Prox;
                    this.quantosNos--;
                    outra.quantosNos--;
                }
            }  // while

            if (lista3.ultimo != null) // se houve casamento
            {
                if (this.atual == null) // acabou o percurso da lista1
                {
                    lista3.ultimo.Prox = outra.atual;
                    lista3.ultimo      = outra.ultimo;
                    lista3.quantosNos += outra.quantosNos;
                }
                else
                {
                    lista3.ultimo.Prox = this.atual;
                    lista3.ultimo      = this.ultimo;
                    lista3.quantosNos += this.quantosNos;
                }
            }
            this.primeiro   = this.ultimo = outra.primeiro = outra.ultimo = null;
            this.quantosNos = outra.quantosNos = 0;
            return(lista3);
        }
Exemplo n.º 2
0
        public void ordenar()
        {
            ListaSimples <Dado> ordenada = new ListaSimples <Dado>();

            while (!this.EstaVazia)
            {
                // achar o menor de todos
                // remover o menor de todos
                // incluir o menor de todos já removido na lista ordenada
            }
            this.primeiro   = ordenada.primeiro;
            this.ultimo     = ordenada.ultimo;
            this.quantosNos = ordenada.quantosNos;
        }