Recherche dans une liste chainée

sossouha Messages postés 4 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 7 janvier 2004 - 14 déc. 2003 à 18:23
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 déc. 2003 à 18:47
salut,
J'ai à faire le recherche d'un caractère dans une liste chainée en langage C. voici la structure que j'utilise


typedef struct arc
{
char val_arc;
struct arc *next;
}Arc;
typedef Arc * LIST;


int appart_car(char arc,LIST *L)
{int result;
int trouve=1;
while((*L)!=NULL && trouve)
{
if ((*L)->val_arc==arc)
{trouve=0;
}
else
{(*L)=(*L)->next;

}
}
result=!trouve;
return result;
}

et dessus la fonction de recherche d'un caractère dans la liste chainée, la problème c'est qu'il n'arrive pas à acceder à la valeur du maillon de la liste et donc il ne peut pas faire la comparaison des caractères.
le résultat est toujours 0 donc n'existe pas.
et tant que la comaparaison n'est pas faite je ne peux ni faire l'intersection ni le test d'inclusion d'une liste dans une autre liste.
merci pour votre aide

s'il vous plait si vous pouvez m'aider je suis bloquée à ce stade
et je ne peux rien faire, je ne sais pas l'erreur où est elle
si vous avez un code prêt je vous serai très reconnaissante
merci

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 déc. 2003 à 18:47
int appart_car(char arc,LIST *L)
{
LIST *p = L;
while(p) {
if(p->val_arc == arc) return 1;
p = p->next;
}
return 0;
}

Un truc de ce genre, non ?
BruNews, ciao...
0
Rejoignez-nous