Java - Busqueda

 
Vista:

Busqueda

Publicado por Juan (6 intervenciones) el 24/05/2007 22:09:58
Tengo un problema con una busqueda.
public Comparable buscar(Comparable x)
{
if(x == null || (frente != null && frente.getInfo().getClass() != x.getClass())) return null;
Nodo p = frente;
while (p != frente)
{
if (x.compareTo(p.getInfo()) == 0)
{
return p.getInfo();
}
p= p.getNext();
}
return null;
}
La insercion funciona perfectamente , me muestra bien la informacion etc.
Cuando busco siempre me retorna null.
La primer linea de codigo:
if(x == null || (frente != null && frente.getInfo().getClass() != x.getClass())) return null;
Me permite controlar ciertas cosas sobre lo que va a entrar a la busqueda , eso funciona bien porque si lo comento me sigue saliendo null cuando busco.
Los objetos que busco tienen implementado Comparable por lo tanto el problema tampoco es ese .
Si alguno me tira una soga se lo voy a agradecer.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Busqueda

Publicado por Tom (1831 intervenciones) el 24/05/2007 22:31:16
Ya me haces dudar a mí ... joé

Si veo lo que creo ver, haces nodo = frente y luego empiezas un bucle que sólo se ejecuta mientras nodo != frente (o sea que no se ejecuta nunca).
Al terminar el bucle retornas null.

Por favor que alguien me corrija si estoy leyendo mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda

Publicado por Juan (6 intervenciones) el 24/05/2007 22:48:50
Estimado Tom,
Si no estoy mal Nodo p = frente va a dar null siempre y cuando la lista este vacia , si frente es igual a null quiere decir que la lista esta vacia y eso esta controlado en la primer linea de codigo , estoy en lo correcto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda

Publicado por Tom (1831 intervenciones) el 25/05/2007 08:17:07
Ahora me pierdo.
A lo que yo voy es que la condición para entrar en el bucle nunca se cumple, con lo que siempre retornas null.

míralo despacio:

a = 1;
while(a != 1) {
puts("Toy nel loop");
}
puts("toy fuera");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda

Publicado por Juan (6 intervenciones) el 25/05/2007 20:54:57
Tom te agradezco mucho la paciencia y las respuestas. Me di cuenta del error.
En vez de hacer while(p!=frente) tenia que hacer while(p!=null) y haciendo p.getNext(); hasta que recorra todos los nodos de la lista.
jajaj que salame que soy!
muchas gracias enserio
Saludos,
Juan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar