Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: HarleyX9000 en 18 Marzo 2015, 22:52 pm



Título: Ayuda para validar si un dato existe o no
Publicado por: HarleyX9000 en 18 Marzo 2015, 22:52 pm
Pues tengo que hacer una lista enlazada simple y funciona todo, solo que el metodo para mostrar anterior ya no se me ocurre como hacerle para validar si el dato ingresado existe o no, si alguien me pudiera ayudar se lo agradeceria mucho

Codigo:

Código
  1. int ListaIng::ant(string x)
  2. {
  3.  Nodo *temp,*aux;
  4.    temp=h;
  5.  
  6.  
  7.    if(h!=NULL){
  8.  
  9.    while(temp->data!=x)
  10.    {
  11.        aux=temp;
  12.        temp=temp->sig;
  13.  
  14.    }
  15.  
  16.    if(temp!=h){cout<< "Anterior es: "<<aux->data<<endl;}
  17.  
  18.    else{cout<< "no hay anterior"<<endl;}
  19.  
  20.    }
  21.  
  22.    else{
  23.        cout<< "Lista vacia"<<endl;
  24.    }
  25. }


la "h" se refiere a la cabeza de la lista

PD Es la primera vez que publico algo

Mod: los códigos deben ir en etiquetas GeSHi


Título: Re: Ayuda para validar si un dato existe o no
Publicado por: milx86 en 19 Marzo 2015, 04:57 am
Tu código recorre la lista mientras el dato no sea encontrado:
Código
  1. while(temp->data!=x)
Si el dato no estuviese en la lista quiere decir que:
aux terminaria apuntando al ultimo elemento
tmp apuntaría a nulo.
Entonces al salir del bucle preguntate que valor tiene tmp->data. si es disinto de x es porque el elemento no se encontró.