Estou precisando fazer um inserção ordenada em lista duplamente encadeada mas so esta ordenando os dois primeiros

1 resposta
java
R
public boolean inserirOrdenado(int chave) {

TadCelulaDuplEnc aux=primeiro.prox;

TadCelulaDuplEnc ant=primeiro;

TadCelulaDuplEnc ult=aux.prox;
System.out.println("imprimindo os valores de forma ordenada \n");
	 

	  
	 while(aux !=null && aux.valor<chave) {
		 ant=aux;
		  aux=ult;
			
       
	  if(ant.valor > aux.valor && aux.valor > ult.valor ) {
		  return false;
        }
	  else {
		  TadCelulaDuplEnc nova = new TadCelulaDuplEnc(); // criar nova celula
           ant.prox = nova; // faz a anterior apontar pra nova celula
           nova.prox = aux.prox; //faz a nova celula apontar pra proxima depois de aux
           aux.prox=ult.prox;
           nova.valor = ant.valor; //nova celula recebe o valor da celula anterior
           ant.valor = aux.valor; // celula anterior recebe o valor da celula aux
           aux.valor=ult.valor;
          return true;
	  }
	 


			  
	 }
	 return false;
}

1 Resposta

Fefo80

Rafael, bom dia.

Bem vindo ao fórum. Da próxima vez posta sua dúvida no corpo da mensagem do que no título (título = resumo) para facilitar a citação.
:wink:

Sobre teu código, lembre que sua função retorna apenas verdadeiro ou falso, e que todas as variáveis criadas dentro de uma função só existem durante ela própria. Então nada adianta você tentar ordenar algo e não fazer nada com aquela ordenação, concorda?

Novamente, seja bem vindo ao fórum! E quanto tiver mais experiência, lembre de ajudar os novatos aqui!

Criado 11 de outubro de 2020
Ultima resposta 18 de out. de 2020
Respostas 1
Participantes 2