1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
Liste* Ajout(Liste *actuel, ELEMENT val);
/*une fonction pour la libération (également récursive)
@arg élément de la liste */
void Liberer(Liste *actuel);
/*La fonction principale */
int main(int argc, char *argv[])
{
Liste *PTemp=NULL;
Liste *PFinal=Ajout(NULL,'b');
Ajout(PFinal,'o');
Ajout(PFinal,'n');
Ajout(PFinal,'j');
Ajout(PFinal,'o');
Ajout(PFinal,'u');
Ajout(PFinal,'r');
PTemp=PFinal;
while(PTemp!=NULL)
{
printf("%c",PTemp->elem);
PTemp=PTemp->Suivant;
}
Liberer(PFinal);
PFinal=NULL;
}
Liste * Ajout(Liste *actuel,ELEMENT val)
{
Liste *nouveau;
if(actuel==NULL)
{
nouveau=malloc(sizeof(Liste));
if(nouveau!=NULL)
{
nouveau->Suivant=NULL;
nouveau->elem=val;
}
}
else
{
actuel->Suivant=Ajout(actuel->Suivant,val);
return nouveau=actuel;
}
return nouveau;
}
void Liberer(Liste* actuel)
{
if(actuel->Suivant!=NULL)
{
Liberer(actuel->Suivant);
}
/* la ligne suivante est plus là par habitude qu'autre chose ;) */
actuel->Suivant=NULL;
free(actuel);
} |
Partager