cs_beatkof
Messages postés1Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention24 avril 2009
-
24 avril 2009 à 00:29
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 2013
-
24 avril 2009 à 09:50
bonsoir je voudrai faire une fonction qui ajout un element à la fion d'une liste chainée et je n'y arrive pas voila ma fonction:
#include <stdio.h>
#include <stdlib.h>
struct chaine {
int valeur;
struct chaine*suivant;
};
typedef struct chaine*liste;
void inserer_fin (liste l, int b);
main ()
{liste l; liste p; int a;
do{
printf ("Entrer 1 entier \n");
scanf ("%d ", &a);
p=(liste)malloc(sizeof(struct chaine));
p->valeur =a;
p-> suivant = l;
l=p;
}
while (a!=0);
free (p);
inserer_fin (l,3);
}
void inserer_fin (liste l, int b)
{liste h;
liste g;
h-> valeur = b;
g=l;
while (g!=NULL){
g=g->suivant;
}
h=(liste) malloc (sizeof (struct chaine));
g=(liste) malloc (sizeof (struct chaine));
g=h;
g->suivant = h->suivant;
l=g;
free(h);
free(g);
}
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 24 avril 2009 à 09:50
Salut,
Voici une petite version corrigée de ton code, en espérant que tu comprenne tes erreurs et que ça t'aide a mieux comprendre le principe des listes chaînées.
do
{
printf ("Entrez un entier\n");
scanf ("%d", &a);
if (a != 0)
liste = inserer_fin(liste, a);
}
while (a != 0);
affiche_liste(liste);
free_liste(liste);
return 0;
}