#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

struct maillon
{
	int valeur;
	struct maillon* suivant;
};

typedef struct maillon maillon;

unsigned short int estVide(maillon* liste)
{
	return(liste == NULL);
}

maillon* debut(maillon* m, int v)
{
	maillon* result = malloc(sizeof(maillon));
	result->valeur = v;
	result->suivant = m;
	return result;
}

maillon* creerListe()
{
	maillon* m = NULL;
	unsigned short int val;
	srand(time(NULL));
	for(int i = 0; i<10; i++)
	{
		val = rand()%(999-111)+111;
		m = debut(m,val);
	}
	return m;
}

maillon* afficheListe(maillon* liste)
{
	maillon* lecture = liste;
	while(!estVide(lecture))
	{
		printf("%hu\n",lecture->valeur);
		lecture = lecture->suivant;
	}
}

maillon* destructListe(maillon* liste)
{
	maillon* lecture = liste;
	while(lecture != NULL){
		maillon* temp = lecture;
		lecture = lecture->suivant;
		free(temp);
	}
	printf("liste effacer\n");
}

maillon* maximumListe(maillon* m)
{
	maillon* lecture = m;
	unsigned short int max = 0;
	for(int i = 0 ; i<10 ; i++)
	{
		if(lecture->valeur > max){
			max = lecture->valeur;
		}
		lecture=lecture->suivant;
	}
	printf("le max est %hu\n", max);
	return 0;
}

int main(int argc, char const *argv[])
{
	maillon* l;
	l = creerListe();
    afficheListe(l);
    maximumListe(l);
    destructListe(l);
	return 0;
}