Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/04/2014, 14:01
zaico77
 
Fecha de Ingreso: febrero-2014
Mensajes: 12
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Problema método anterior lista ligada

Ya logre corregirlo, y estaba comparando posiciones no objetos por eso lo del puntero.

La verdad no se si sea por eso el problema pero lo unico que hice fue cambiar de linea la parte de

Código C++:
Ver original
  1. anterior = p;

y quitarle la parte de
Código C++:
Ver original
  1. p->getSiguiente() != NULL

y pues ya lo probé con varias funciones y no dio fallos si hace su función correcta.
Este es el nuevo código y cambie el nombre de la variable x por pos para que haya confusión en mi lista.

Código C++:
Ver original
  1. template <class T>
  2. nodo<T>* lista<T>::anterior(nodo<T> *pos){
  3.    nodo<T> *anterior,*p;
  4.    anterior=p=primero;
  5.    if(pos == primero){
  6.    return 0;
  7.    }else{
  8.        while(p->getSiguiente() != pos){
  9.             p=p->getSiguiente();
  10.             anterior=p;
  11.         }
  12.         return anterior;
  13.    }
  14. }

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.

Muchas gracias a todos los que tuvieron el tiempo de leer y a los que respondieron y quisiera pedir su ayuda ahora para que me ayuden a resolver el otro problema que tengo con la forma de ordenar una lista ya esta un tema abierto con esa duda.