Cargando

Ordenar con merge usando apuntadores de lista




Pulsa corazón para recibir avisos de nuevas Respuestas

  AUTOR PREGUNTA

Publicado 18 diciembre 2014 - 18:35
Estoy teniendo problemas implementando un ordenamiento por merge en una lista enlazada, especificamente la parte del merge, estoy tratando de ordenar esta lista conteniendo los strings y ordenandolos de manera alfabetica. Sin embargo el codigo de mi merge a veces se salta los apuntadores dependiendo del orden de la lista original.

Actualmente tengo lo siguiente:

public node merge(node left, node right){
node result = null; if(left == null)
{ return right;
}else if(right == null){ return left; }
if(left.info.compareTo(right.info) < 0){
result = left; result.next = merge(left.next, right); }
else{ result = right; result.next = merge(left, right.next); }
return result; }

Agradezco toda la ayuda
  • ¿Tienes la misma pregunta? Yo también
  • Volver arriba

 

Publicado 18 diciembre 2014 - 19:54
has pensado utilizar algo como JUnit para saber que puede estar pasando? Te dejo el enlace:

Por favor Identificate o Registrate para poder ver este contenido



 

Publicado 18 diciembre 2014 - 19:57
El problema es que estas manteniendo viejos apuntadores a los nuevos, cambia esto:


mergeSort(left); 
mergeSort(right);

Por esto:

left = mergeSort(left); 
right = mergeSort(right);

Con eso lo deberias solucionar.

   AUTOR PREGUNTA

Publicado 18 diciembre 2014 - 20:15
Era eso Joel gracias!


X