Inserção em lista duplamente encadeada

0 respostas
G

Boa noite,
Preciso criar um método que insere uma String numa lista duplamente encadeada em ordem alfabética e usando o "public int compareTo(String anotherString)"

Neste sentido, basicamente, não sei fazer a inserção em nodos intermediários...
public void insert(String s){
		
		//public int compareTo(String anotherString)
		//< 0 (negativo) ? valor do objeto corrente é menor que o valor do objeto passado como parâmetro
		//> 0 (positivo) ? valor do objeto corrente é maior que o valor do objeto passado como parâmetro
		//== 0 (zero) os objetos são iguais
		
		
		  Node current = getFirst();
	    
		  //se a lista estiver vazia, somente insere
		  if (isEmpty()){
			  insertAtFront(s);
		  } else{
			  
		
	  while (current!=null) { //enquanto nao percorrer toda a lista...
			
				  
		if(s.compareTo((String) current.getData())<0){ // se o dado for menor
				if (current==getFirst()){ 
				insertAtFront(s); //insere na primeira posição
				}
				else if(current==getLast()){ //insere uma posição antes da última posição
			
			//NAO SEI COMO FAZER P/INSERIR EM UMA POSIÇÃO INTERMEDIÁRIA
				 
				}
				else{ 
					
					 E TB NÃO SEI COMO INSERIR UMA POSICAO ANTES DO NODO CORRENT
			 } 
				}
					   
		else if(s.compareTo((String) current.getData())>0){
						   insertAtFront(s); //inserir depois do nodo corrente
					   }
		else if(s.compareTo((String) current.getData())==0){
						   insertAtFront(s);
					   }
					   } //termina os ifs			   
		           current=current.getNext();   //incrementa e compara os proximos nodos
		  }
		
	}
Criado 10 de maio de 2013
Respostas 0
Participantes 1