Recherche dans une liste chainée

[Fermé]
Signaler
Messages postés
4
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
7 janvier 2004
-
 Profil bloqué -
salut
j'ai à faire la recherche dans une liste chainée de caractères 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

2 réponses


essai de voir avec ça ..

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==1)
{
if (L->val_arc==arc)
{
trouve=0;
}
else
{
L=L->next;

}
}
result=trouve;
return result;
}
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci


escuse javé oublié là en C il existe une fonction pour la comparaison d 2 chaine"strcmp"

corrige..
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==1)
{
if (strcmp(L->val_arc,arc) ==0)
{
trouve=0;
}
else
{
L=L->next;

}
}
result=trouve;
return result;
}