#include #include typedef struct s_maillon { void* variable; struct s_maillon *suivant; } MAILLON; MAILLON* preparerMaillon(void* donnee) { MAILLON* p; p = (MAILLON*)malloc(sizeof(MAILLON)); if(p) { p-> variable=donnee; p-> suivant=NULL; } return p; } void insertion_tete(MAILLON *pr, void* donnee) { MAILLON* ancien=pr; MAILLON* nouveau; nouveau=preparerMaillon(donnee); nouveau->suivant=ancien; pr=nouveau; } void supp_tete(MAILLON* pr,void* donnee) { MAILLON* p3; MAILLON* p2; p3=pr; p2=preaprerMailllon(donnee); pr=p2; p2->suivant=p3; } void insertion_fin(MAILLON *pr,void* donnee) { MAILLON *p,*m; p=preparerMaillon(donnee); m=pr; if(m!=NULL) while(m->suivant != NULL) m=m->suivant; m->suivant = p; } void insertion_nplace(MAILLON* pr,void* donnee, int place) { int cpt=0; MAILLON* m; MAILLON* p; for(p=pr;p!=NULL;p=p->suivant) { if(cpt=place-1) { m=preparerMaillon(donnee); m->suivant=p->suivant; p->suivant=m; } else cpt++; } } void supp_fin(MAILLON* pr) { MAILLON *p,*p2; if(pr) { p=pr->suivant; while(p) { p2=p; p=p->suivant; } free(p2); } else("liste vide !!\n"); } void afficher(MAILLON* pr) { MAILLON *p; printf("\nAffichage de la liste:"); for(p=pr;p!=NULL;p=p->suivant) { printf("\nn: %d",p->variable); } } int main () { int n=5,i; MAILLON* pr; for(i=0;i