Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/09/2008, 19:26
PachuG
 
Fecha de Ingreso: septiembre-2008
Ubicación: Córdoba
Mensajes: 67
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con listas enlazadas!

Tenes que iterar sobre la lista para encontrar el nodo que contiene la info que buscas. Para ello tenes 2 posibilidades: 1) la lista esta vacia por lo que deberia devolver null (en este caso creo) o podrias lanzar una excepcion.
2) la lista ya tiene elementos por lo que debes iterar

Para ello debes tener en cuenta que representa cada atributo de tu clase SLLNode

public class SLLNode {
private int info; --> contiene la info del nodo
private SLLNode next; --> apunta al proximo nodo


public SLLNode searchnode(int i){
SLLNode prt;
prt=head;
if(prt==null)
return null; // Tb podrias haber lanzado una excepcion
//while(prt.getnext()!=i){//Tengo problemas para recorer la lista
// con while seria
while(prt.getNext()!=null) {
// itera mientras haya un prox nodo, o sea la referencia al proximo nodo sea distinta de null,
if(prt.getinfo()==i) {
// System.out.println("Nodo encontrado"+i); --> supongo que es para prueba unicamente
// recuerda que debes devolver un objeto tipo SSLNode
return prt;
} // fin if
else{
// System.out.println("No se encontró el nodo"); --> debes recorrer toda la lista (Iterar)
prt = prt.getNext();
// ahora prt hace referencia al proximo nodo
} // fin else
} // fin while
// Ahora ya recorriste toda la lista; por lo que no encontro el dato que buscabas,
// pues si lo hubiera encontrado al hacer return del nodo el metodo hubiera finalizado
// System.out.println("No se encontró el nodo"); --> En caso de querer informar lo deberia
// hacer quien invoca el metodo
return null; // Tb podrias haber lanzado una excepcion
}

Espero te haya servido algo la explicacion, el metodo no lo probe, creo que funciona, tal vez lo puedas mejorar y hacer el otro tb.
Suerte...