Gallhager ha scritto:
L'idea era scorrere la lista fino ad arrivare alla fine o fino a trovare l'elemento, e poi valutare il motivo per cui si è usciti dal while. Dà problemi solo quando dovrebbe ritornare -1. Con l'if dentro il while questo schema si perde, cosa intendi?
Ah, ho capito. Però devi comunque controllare che non sia NULL anche nell'if, così:
int Ricerca(PNodo l, int el){
while(l != NULL && l->info != el){
l=l->next;
}
if(l != NULL) // se l non è NULL, vuol dire che ha trovato l'elemento
return 1;
else return -1;
}
Io, invece, intendevo una cosa di questo genere
int Ricerca(PNodo l, int el){
int r=1;
while(l !=NULL ){
if (l->info == el) return 1;
l=l->next;
}
return -1;
}