Ordenar Lista Dinamica

3 respostas
greg10

Estou com um probleminha na inserção de elementos na minha lista dinamica.

Veja o código do evento:

public static void Insere(String Name, String Pass, String Sex){
no temp = new no(Name, Pass, Sex, null);

if(L == null)
		L = temp;
	else if(Name.compareToIgnoreCase(L.nome) < 0){
		temp.prox = L;
		L = temp;
	}	
	else{
		no aux = L;

		while(aux.prox != null && aux.prox.nome.compareToIgnoreCase(Name) < 0)
			aux = aux.prox;
		if(aux.prox == null)
			aux.prox = temp;
		else{
			aux = temp;
			temp.prox = aux.prox;
			
		}
	}
}

Percebam que quando o elemento a inserir é menor que o primeiro e quando ele é maior que o utlimo tudo funciona, meu problema é quando quero inserir entre os elementos da lista, por exemplo, tenho A e C inseridos quando quero inserir o B ele não funciona.

Se alguem puder analisar a questão e me responder agradeço…

3 Respostas

dicabeca

opa blz escuta qnd postar coloque seu codigo entre “code”, e outra pq vc quer fzr isso c api nativa do java ja tem tudo isso, monte sua List e depois so mandar esse comando

Collections.sort(suaLista);

pronta esse metodo ja ordena sua lista.

greg10

Meu amigo, entenda que estou trabalhando com uma lista dinamica que segue uma classe no que tem por paramentro (String, String, boolean e null). Sua Lista não satisfaz minha condição.

greg10
public static void Insere(String Name, String Pass, String Sex){ 
no temp = new no(Name, Pass, Sex, null); 

if(L == null) 
L = temp; 
else if(Name.compareToIgnoreCase(L.nome) < 0){ 
temp.prox = L; 
L = temp; 
} 
else{ 
no aux = L; 

while(aux.prox != null && aux.prox.nome.compareToIgnoreCase(Name) < 0) 
aux = aux.prox; 
if(aux.prox == null) 
aux.prox = temp; 
else{ 
aux = temp; 
temp.prox = aux.prox; 

} 
} 
}
Criado 20 de junho de 2008
Ultima resposta 23 de jun. de 2008
Respostas 3
Participantes 2