IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Recherche dans une liste chainée


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Recherche dans une liste chainée
    salut tous le monde

    J'ai une question ceci est le code d'une fonction recherche dans une liste chainée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct noeud* cherche (int info , struct noeud * p ) 
     { 
      while ( p && (p->cle != info ))
       { p= p->suivant ; 
          return p ; 
        }
    }
    est-ce que c'est juste ? Je ne comprend pas while ( p ) ?!
    Quelqu'un peut m'expliquer ??

    Merci d'avance

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par reyo47 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct noeud* cherche (int info , struct noeud * p ) {
       while ( p && (p->cle != info )) {
          p= p->suivant ; 
          return p ; 
        }
    }
    la structure noeud contient un champs struct noeud *suivant qui permet de contenir l'adresse de la prochaine structure dans la chaine
    lorsqu'on est sur la dernière structure de la chaine le pointeur suivant vaut NULL.
    while (p) revient à écrire while (p != NULL), "tant que p pointe bel et bien sur une structure" ou plus clairement "tant que je ne suis pas en bout de chaine"

    en revanche j'ai le sentiment que le return p; lui est mal placé

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Une petite précision: en C, il y a une simplification à connaitre : la valeur 0 équivaut à FALSE, une valeur différente de 0 équivaut à TRUE

  4. #4
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    salut,



    la structure noeud contient un champs struct noeud *suivant qui permet de contenir l'adresse de la prochaine structure dans la chaine
    lorsqu'on est sur la dernière structure de la chaine le pointeur suivant vaut NULL.
    while (p) revient à écrire while (p != NULL), "tant que p pointe bel et bien sur une structure" ou plus clairement "tant que je ne suis pas en bout de chaine"

    en revanche j'ai le sentiment que le return p; lui est mal placé

    Merci BufferBob c mieux maintenant

Discussions similaires

  1. Recherche dans une liste Chainée
    Par alexisleprogrammeur dans le forum Débuter
    Réponses: 4
    Dernier message: 21/06/2013, 13h57
  2. fonction de recherche dans une liste chainée
    Par seifvai dans le forum C
    Réponses: 10
    Dernier message: 23/12/2007, 10h35
  3. récupérer un objet dans une liste chainée
    Par marsuwhite dans le forum Langage
    Réponses: 4
    Dernier message: 05/06/2006, 14h05
  4. Réponses: 2
    Dernier message: 10/10/2005, 02h25
  5. Recherche dans une liste non trié
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 13/09/2004, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo