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 :

Ajout à la fin d'une liste chaine


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Par défaut Ajout à la fin d'une liste chaine
    bonjour,j'ai une fonction d'ajouter un element a la fin dune liste la fct est ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    struct liste *ajout(int val,struct liste *p)
    {
    struct liste *q,*nouveau;
    q=p;
    while(q->suivant!=NULL)
    q=q->suivant;
    nouveau=(struct liste*)malloc(sizeof(struct liste));
    q->suivant=nouveau;
    nouveau->valeur=val;
    nouveau->suivant=NULL;
     
    return(p);
    }
    mais j'ai pas compris qlq chose par exemple :
    q=p;
    et return (p) ,pourqoui on n'a pas fait return q
    et q quel est son role .
    merci pour m'eqpliquer ca

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Tu peux regarder ce thread.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    La fonction renvoie la tête de la liste : ici, elle renvoie systématiquement p qui représente la tête de la liste et qui lui est passé en argument. Ceci parce que la fonction est mal fichue, car elle devrait prendre en compte le cas où la liste est vide (et dans ce cas l'argument p est NULL) et où on ajoute un élément. Alors la liste n'est plus vide et il faut renvoyer la nouvelle tête de liste.

    q sert à parcourir la liste pour en atteindre la queue. Il est initialisé sur la tête de la liste ( q = p) et parcourt la liste (q=q->suivant) jusqu'à la fin (et alors q->suivant==NULL) pour insérer le nouvel élément derrière (q->suivant=nouveau) et le déclarer comme nouvelle queue (nouveau->suivant=NULL)

Discussions similaires

  1. Ajouter un élément dans une liste chainée.
    Par fourize dans le forum Général Java
    Réponses: 7
    Dernier message: 12/05/2012, 10h26
  2. [Toutes versions] Ajouter une chaine de caractère à la fin d'une autre chaine
    Par esstin dans le forum Excel
    Réponses: 2
    Dernier message: 02/05/2009, 15h54
  3. Réponses: 3
    Dernier message: 19/11/2007, 13h11
  4. [Stratégie]Sauvegarde d'une liste chainée dans un fichier
    Par BernardT dans le forum Général Java
    Réponses: 17
    Dernier message: 25/07/2005, 17h04
  5. manipulation d'une liste chainé
    Par sorari dans le forum C++
    Réponses: 1
    Dernier message: 16/03/2005, 12h32

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