82 lines
1.9 KiB
C
82 lines
1.9 KiB
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <time.h>
|
||
|
|
||
|
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;
|
||
|
}
|