Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/04/2014, 09:51
Avatar de nup_
nup_
 
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Problema método anterior lista ligada

Hola:

Cita:
Iniciado por zaico77 Ver Mensaje
Y eso de preocuparme cuando x apunta a algo que no esta en la lista ya esta, lo que pasa es que utilizo un método de búsqueda que retorna la posición del puntero o nodo si lo encuentra de ahí la posición la mando por ejemplo al método anterior y como ya se que si existe por que el método buscar ya me lo dijo pues continuo con las funciones, es decir que si la posición no existe o apunta a otra cosa nunca entrare al método anterior.
Vale, pero eso no es una buena práctica. Si en algún momento te olvidas de eso y llamas esa función con un puntero q no existe en la lista vas a tener un "Access violation" en
Código C++:
Ver original
  1. p->getSiguiente()

Prueba con:
Código C++:
Ver original
  1. while(p->getSiguiente() != pos && p->getSiguiente() != NULL){
  2.             p=p->getSiguiente();
  3.             anterior=p;
  4. }
  5. return ( p->getSiguiente() != NULL ) ? anterior : 0;

Además es ineficiente. Cada vez q llamas la función anterior(...) tienes q recorrer la lista de nuevo.
Es mejor que en el método de búsqueda vayas llevando quien es el anterior o q uses otra estructura de datos: lista doblemente enlazada

slds;

nup_