Ayuda para validar si un dato existe o no

Iniciado por HarleyX9000, 18 Marzo 2015, 22:52 PM

0 Miembros y 1 Visitante están viendo este tema.

HarleyX9000

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 (cpp) [Seleccionar]
int ListaIng::ant(string x)
{
 Nodo *temp,*aux;
   temp=h;
   

   if(h!=NULL){

   while(temp->data!=x)
   {
       aux=temp;
       temp=temp->sig;

   }

   if(temp!=h){cout<< "Anterior es: "<<aux->data<<endl;}

   else{cout<< "no hay anterior"<<endl;}
       
   }

   else{
       cout<< "Lista vacia"<<endl;
   }
}



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

milx86

Tu código recorre la lista mientras el dato no sea encontrado:
Código (cpp) [Seleccionar]
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ó.
La abstracción es la clave para lidiar con la complejidad.