Insertion à la fin d'une liste chainée

Résolu/Fermé
Nowever Messages postés 84 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 1 avril 2016 - 25 mai 2013 à 00:12
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 29 mai 2013 à 07:36
Bonsoir,

voila mon soucis c'est que j'essaie d'insérer un élément à la fin d'une liste chainée mon code ne marche pas je ne vois pas ou est l'erreur, c'est surement que j'ai mal compris le concept quelqu'un peut-il me corriger ou m'expliquer comment faire pour le corriger :) merci

void insertion(Liste *liste, int nvNombre)
{
   
    Element *nouveau = malloc(sizeof(*nouveau));

        while(nouveau->suivant!=NULL)
        {
            nouveau=nouveau->suivant;
        }
        nouveau->nombre=nvNombre;


    liste->premier = nouveau;
}

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
25 mai 2013 à 10:55
Bonjour,

Déjà, cela dépend de la structure de données ?

Sinon ton algorithme n'est pas bon.

La logique est plutôt la suivante.
   Element *nouveau = malloc(sizeof(*nouveau));

   nouveau->suivant = NULL;
   nouveau->nombre=nvNombre;
   
   /*Tu te mets en fin de ta liste "liste", cela dépend de ta structure de données*/
   liste->suivant = nouveau;

Il te reste juste à faire la partie qui est en commentaire.
1