#include #include #include int i=1; typedef struct mail{ unsigned short entier; struct mail *suivant; }maillon; void delLast(maillon* firstMail){ maillon* p=firstMail; while(p->suivant!=NULL){ p=p->suivant; } printf("la valeur du dernier maillon est %d\n",p->entier ); } maillon* creatMail(maillon* maillonPrecedent){ maillon* p=(maillon*) malloc(sizeof(maillon)); p->entier=i++; p->suivant=NULL; maillonPrecedent->suivant=p; return p; } maillon* creatList(int nbElem){ int compteur=0; maillon* p=(maillon*) malloc(sizeof(maillon)); maillon *firstMail=p; for(compteur=0;compteursuivant=creatMail(p); p=p->suivant; } return firstMail; } void readList(maillon* premierMaillon){ maillon* p=premierMaillon; while(p!=NULL){; printf("%d, ",p->entier); p=p->suivant; } } void delList(maillon* maillonX){ maillon* p; while(maillonX!=NULL){ p=maillonX->suivant; free(maillonX); maillonX=p; } } void delLastElem(maillon* premierMaillon){ maillon* p=premierMaillon; maillon* saveLast; while(p->suivant!=NULL){ saveLast=p; p=p->suivant; } free(p); saveLast->suivant=NULL; } void permCircu(maillon* premierMaillon){ maillon* p; int x=premierMaillon->entier; int y=premierMaillon->suivant->entier; for(p=premierMaillon->suivant;p->suivant!=NULL;p=p->suivant){ p->entier=x; x=y; y=p->suivant->entier; } premierMaillon->entier=p->entier; p->entier=x; } int main(void){ maillon* premierMaillon=creatList(10); readList(premierMaillon); permCircu(premierMaillon); printf("permutation circulaire:\n"); readList(premierMaillon); delList(premierMaillon); return EXIT_SUCCESS; } /* srand(time(NULL)); int t; for (int l = 0; l < lim; ++l) { t = (rand()%888+1)+111; printf("%d\n", t); } }*/