Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con ejercicio de lista dinámica

Estas en el tema de Problema con ejercicio de lista dinámica en el foro de Java en Foros del Web. Hola buenos dias, antes de nada agradeceros por la atención.. Tengo un problema en el cual no se me ocurre otra solución por el momento. ...
  #1 (permalink)  
Antiguo 21/06/2014, 05:19
 
Fecha de Ingreso: marzo-2013
Ubicación: Madrid
Mensajes: 20
Antigüedad: 11 años, 8 meses
Puntos: 0
Problema con ejercicio de lista dinámica

Hola buenos dias, antes de nada agradeceros por la atención..

Tengo un problema en el cual no se me ocurre otra solución por el momento. Seguramente es algo sencillo, aunque para mi que no llevo mucho tiempo se hace más complicado.

El problema es que tengo que comparar dos listas dinámicas en un metodo booleano y si la lista del parametro es mayor devolver un false. Aquí os adjunto el código..

/**
* Indicar si la lista es mayor o igual que otra.
*
* <p><b>PRE:</b> Cierto
* <p><b>POST:</b> Devuelve cierto si la lista es mayor o igual que la dada
* como parámetro, y falso en caso contrario. No se modifica actual
* <p><b>COMPLEJIDAD:</b> O(N) donde N = Min(longitud(this), longitud(obj))
*/
public boolean mayorIgual(ListaOrdenada <Informacion> lista2) {
// TODO
int contador1=0; //Contadores para luego hacer la comparación
int contador2 =0;

Nodo aux1 = getCabeza();
Nodo aux2 = lista2.getCabeza();

while (aux1 != null) {
aux1= aux1.getSiguiente();
contador1++;
}

while (aux2 != null) {
aux2= aux2.getSiguiente();
contador2++;
}

if (contador1 >= contador2)
return true;
else
return false;
}

P.D= Se que no me sirve porque no me pasa unas pruebas Junit proporcionadas...
Gracias, un saludo.!!
  #2 (permalink)  
Antiguo 21/06/2014, 22:36
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Problema con ejercicio de lista dinámica

Hola:

Si vas a utilizar la longitud (cantidad de nodos) de la lista, declara dentro de esta un atributo que lleve esta cuenta y evites de hacer un recorrido que al final es muy costoso.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #3 (permalink)  
Antiguo 21/06/2014, 22:52
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años, 5 meses
Puntos: 9
Respuesta: Problema con ejercicio de lista dinámica

Como dice CapacProg lo mejor que puedes hacer es crear un atributo en tu clase que represente la cantidad de nodos que posee tu lista, cuando agregues un nodo incrementarlo y disminuir al retirar un nodo; luego te creas un metodo del estilo getSize() que te diga la cantidad de nodos y con eso solucionas tu problema. De este modo es muchísimo mas rápido ya que no tienes que recorrer ninguna de las listas.
  #4 (permalink)  
Antiguo 22/06/2014, 07:55
 
Fecha de Ingreso: marzo-2013
Ubicación: Madrid
Mensajes: 20
Antigüedad: 11 años, 8 meses
Puntos: 0
Gracias por la ayuda, probare a realizarlo con este metodo alternativo.

Etiquetas: ejercicio, lista, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:43.