Liste chaînée ajouter un élément a la fin de la liste
Mark
-
juliencolin54 Messages postés 238 Statut Membre -
juliencolin54 Messages postés 238 Statut Membre -
Bonjour, j'ai un souci mon programme ne marche pluus votre aide svp
#include <stdio.h>
#include <stdlib.h>
struct element{
int donne;
struct element*suivant;
};
typedef struct element*liste;
liste inser(liste L,int donne)
{
liste nouvel_element;
nouvel_element=(element*) malloc (sizeof(element));
nouvel_element->donne=donne;
nouvel_element->suivant=NULL;
if(L==NULL)
return nouvel_element;
else {
element*courant=L;
while (courant->suivant!=NULL)
{
courant=courant->suivant;
}
courant->suivant=nouvel_element;
return L;
}}
liste supprimer(liste L)
{
if(L!=NULL)
{
element*element_supprimer=L->suivant;
free(L);
return element_supprimer;
}
else
return NULL;
}
void afficher(liste L)
{
element*courant=L;
while(courant!=NULL)
{
printf("%i",courant->donne);
courant=courant->suivant;
}}
int main()
{
int I;
liste ma_liste=NULL;
for(I=1;I<=50;I++)
{
printf("%i\n",2*I);
}
printf("liste apres insertion");
ma_liste=inser(ma_liste,100);
afficher(ma_liste);
printf("la liste apres suppression");
ma_liste=supprimer(ma_liste);
afficher(ma_liste);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
struct element{
int donne;
struct element*suivant;
};
typedef struct element*liste;
liste inser(liste L,int donne)
{
liste nouvel_element;
nouvel_element=(element*) malloc (sizeof(element));
nouvel_element->donne=donne;
nouvel_element->suivant=NULL;
if(L==NULL)
return nouvel_element;
else {
element*courant=L;
while (courant->suivant!=NULL)
{
courant=courant->suivant;
}
courant->suivant=nouvel_element;
return L;
}}
liste supprimer(liste L)
{
if(L!=NULL)
{
element*element_supprimer=L->suivant;
free(L);
return element_supprimer;
}
else
return NULL;
}
void afficher(liste L)
{
element*courant=L;
while(courant!=NULL)
{
printf("%i",courant->donne);
courant=courant->suivant;
}}
int main()
{
int I;
liste ma_liste=NULL;
for(I=1;I<=50;I++)
{
printf("%i\n",2*I);
}
printf("liste apres insertion");
ma_liste=inser(ma_liste,100);
afficher(ma_liste);
printf("la liste apres suppression");
ma_liste=supprimer(ma_liste);
afficher(ma_liste);
return 0;
}
A voir également:
- Liste chaînée ajouter un élément a la fin de la liste
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Site dangereux liste - Guide
- Comment cacher la liste d'amis sur facebook - Guide
1 réponse
Bonjour,
Les erreurs de compilation sont pourtant explicites :
Dans ton code le type "element" n'est pas défini (au contraire de struct élément)
Donc j'ai rajouté 5 fois le mot struct sans chercher à comprendre ton code et voilà :
Cdlt,
Les erreurs de compilation sont pourtant explicites :
$ cc main.c main.c: In function `inser': main.c:13:18: erreur: `element' undeclared (first use in this function) main.c:13:18: note: each undeclared identifier is reported only once for each function it appears in
Dans ton code le type "element" n'est pas défini (au contraire de struct élément)
Donc j'ai rajouté 5 fois le mot struct sans chercher à comprendre ton code et voilà :
#include <stdio.h>
#include <stdlib.h>
struct element{
int donne;
struct element*suivant;
};
typedef struct element*liste;
liste inser(liste L,int donne)
{
liste nouvel_element;
nouvel_element=(struct element*) malloc (sizeof(struct element));
nouvel_element->donne=donne;
nouvel_element->suivant=NULL;
if(L==NULL)
return nouvel_element;
else {
struct element*courant=L;
while (courant->suivant!=NULL)
{
courant=courant->suivant;
}
courant->suivant=nouvel_element;
return L;
}
}
liste supprimer(liste L)
{
if(L!=NULL)
{
struct element*element_supprimer=L->suivant;
free(L);
return element_supprimer;
}
else
return NULL;
}
void afficher(liste L)
{
struct element*courant=L;
while(courant!=NULL)
{
printf("%i",courant->donne);
courant=courant->suivant;
}
}
int main()
{
int I;
liste ma_liste=NULL;
for(I=1;I<=50;I++)
{
printf("%i\n",2*I);
}
printf("liste apres insertion");
ma_liste=inser(ma_liste,100);
afficher(ma_liste);
printf("la liste apres suppression");
ma_liste=supprimer(ma_liste);
afficher(ma_liste);
return 0;
}
Cdlt,