Parcourir une liste chainée HELP

Résolu/Fermé
mrism000 Messages postés 34 Date d'inscription dimanche 29 avril 2012 Statut Membre Dernière intervention 18 novembre 2012 - 1 mai 2012 à 17:08
mrism000 Messages postés 34 Date d'inscription dimanche 29 avril 2012 Statut Membre Dernière intervention 18 novembre 2012 - 1 mai 2012 à 17:33
Bonjour,

j'ai défini les structures suivantes d'une liste chainée :


typedef struct Element Element;
struct Element
{
int nombre;
Element *suivant;
};

typedef struct Liste Liste;
struct Liste
{
Element *premier;
};

mais je veux parcourir cette liste du debut jusqu'a la fin pour chercher un element par exemple . comment faire
et merci d'avance :)




3 réponses

katsuo49 Messages postés 330 Date d'inscription vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
1 mai 2012 à 17:17
Liste liste;
// On suppose que tu remplis ta liste
Element *i = liste;
int val = 5; // si par exemple tu cherches 5 dans ta liste chainée
bool trouve = false;
while (i != null and !false)
{
if(i->nombre == val)
{
trouve = true;
}
else
{
i = i->suivant;
}
}

ça fonctionne à condition de bien initialiser à null les pointeurs vers suivant quand tu ajoutes un Element à ta liste.
0
mrism000 Messages postés 34 Date d'inscription dimanche 29 avril 2012 Statut Membre Dernière intervention 18 novembre 2012
1 mai 2012 à 17:20
ah ouii merci beaucoup :)
0
mrism000 Messages postés 34 Date d'inscription dimanche 29 avril 2012 Statut Membre Dernière intervention 18 novembre 2012
1 mai 2012 à 17:33
le compilateur m'a dit qu il y a une erreur en Element *i = liste;

le msg "incompatible type when initializing type 'struct Element *' using type 'Liste' "

PS : je programme avec la langage C pas C++
0