#include #include #include struct maillon { unsigned short valeur; struct maillon* suiv; }; typedef struct maillon maillon; maillon* ajouteDebut(maillon *chaine, unsigned short entier){ maillon *nouveauMaillon=malloc(sizeof(maillon)); nouveauMaillon->valeur=entier; nouveauMaillon->suiv=chaine; return nouveauMaillon; } maillon* retireDebut(maillon *chaine){ maillon *premierMaillon=malloc(sizeof(maillon)); maillon *nouvelleChaine=malloc(sizeof(maillon)); premierMaillon=chaine; nouvelleChaine=premierMaillon->suiv; premierMaillon->suiv=NULL; free(premierMaillon); return nouvelleChaine; } void ajouterFin(maillon *chaine, unsigned short entier){ maillon *nouveauMaillon=malloc(sizeof(maillon)); nouveauMaillon->valeur=entier; nouveauMaillon->suiv=NULL; maillon *parcourir=malloc(sizeof(maillon)); parcourir=chaine; while(parcourir->suiv!=NULL){ parcourir=parcourir->suiv; } parcourir->suiv=nouveauMaillon; } void retireFin(maillon *chaine){ maillon *parcourir=malloc(sizeof(maillon)); maillon *precedent=malloc(sizeof(maillon)); precedent->suiv=NULL; parcourir=chaine; while(parcourir->suiv!=NULL){ precedent=parcourir; parcourir=parcourir->suiv; } precedent->suiv=NULL; free(parcourir); free(precedent); } void afficheListe(maillon *chaine){ maillon *affichage=malloc(sizeof(maillon)); affichage=chaine; while(affichage->suiv!=NULL){ printf("%hu ",affichage->valeur); affichage=affichage->suiv; } printf("\n\n"); free(affichage); } int main() { int i; maillon *liste=malloc(sizeof(maillon)); srand(time(NULL)); putchar('\n'); liste->valeur=(rand()%889)+111; liste->suiv=NULL; for(i=0;i<10;i++){ unsigned short v=(rand()%889)+111; liste=ajouteDebut(liste, v); } printf("Les valeurs de la liste sont :\n"); afficheListe(liste); unsigned short v=(rand()%889)+111; ajouterFin(liste, v); printf("Les valeurs de la liste sont :\n"); afficheListe(liste); return 0; }