Volevo sapere come implementare la funzione di ricerca di un elemento in lista.
ipotizziamo che il prototipo della funzione si trovi in un file chiamato
list.h:
TNode* list_search (TList list,TKey key);
in list.c l'implementazione:
TNode* list_search(TList list, TKey key) {
TList curr;
curr=list;
while((curr!=NULL) && greater(key, curr->info.key))
{
curr=curr->link;
}
/* Analisi delle post - condizioni
C1: valore da cercare piu’
piccolo della Testa : curr != NULL
C2: valore da cercare maggiore
della Coda : curr != NULL
C3: valore da cercare compreso tra
quello di Testa e quello di Coda : curr->info.key>=key
*/
if ((curr!=NULL) && equal(curr->info.key, key))
/* Elemento trovato */
return curr;
else
return NULL;
}
e poi ci sia il file menu.c che contiene la chiamata alla funzione cosi:
int main() {
TList list; //tipo lista
TInfo info; //tipo info del nodo
TKey key; //tipo chiave
printf("\tRicerca utente \n");
printf("------------------------------\n");
printf("Inserisci il cognome: ");
gets(info.key);
...........................
poi?come richiamo la funzione list_search?
qualcosa come:
link=list_search(list,info);
e poi come faccioa dire,si ho trovato l'elemento?