#ifndef mot_h
#define mot_h
#include <stdlib.h>
#include <stdio.h>
#include <string.h>



typedef struct Noeud {
	unsigned char mot[25];
	int occ;
	int tmp;
	struct Noeud* suivant;
} Noeud;


int Nb_mot (Noeud* teteliste, int n);
void Frequence_mot (Noeud* teteliste);
void Moyenne_char (Noeud* teteliste);
Noeud* Extraire_mot (Noeud* teteliste);
Noeud* ajoutTete(Noeud* teteliste, unsigned char mot[]);







Noeud* ajoutTete(Noeud* teteliste, unsigned char mot[]) {
	Noeud* noeud = (Noeud*)malloc(sizeof(Noeud));
	strcpy(noeud->mot, mot);
	noeud->occ = 1;
	noeud->tmp = 0;
	noeud->suivant = teteliste;
	return noeud;
}



Noeud* Extraire_mot (Noeud* teteliste) {
	FILE* fichier = NULL;
	fichier = fopen(NomduFichier, "r");
	unsigned int caractereActuel = 0;
	int i;
	int res;
	if (fichier != NULL) {
        caractereActuel = fgetc(fichier);
        	if (caractereActuel != EOF) {
           	 	while (caractereActuel != EOF) {
               	 		unsigned char mot[25];
                		i=0;
                		while ((caractereActuel != 32) && (caractereActuel != 34) && (caractereActuel != 40) && (caractereActuel != 41) && (caractereActuel != 44) && (caractereActuel != 46) && (caractereActuel != 58) && (caractereActuel != 59) && (caractereActuel != 33) && (caractereActuel != 63)) {
                        		mot[i]= caractereActuel;
                        		i++;
                        		caractereActuel = fgetc(fichier);
	                  		  }
        	        	mot[i]=0;
                        caractereActuel = fgetc(fichier);
        	        	if (mot[0] != 0) {
        	        	    Noeud* l = teteliste;
        	        	    if (l == NULL) {
        	          	      teteliste = ajoutTete(teteliste, mot);
        	          	  }
        	           	 else {
        	            	    res = 0;
        	             	   while (l != NULL && res !=1){
        	             	       if (strcmp(l->mot, mot) == 0) {
        	                   	     l->occ=l->occ++;
        	                  	      res = 1;
                                        }
        	                  	  else {
        	                  	      l = l->suivant;
                                        }
                                    }
        	               	 	if (res == 0) {
        	                	teteliste = ajoutTete(teteliste, mot);
                                    }
        	            		}
        	        	}
        	    	}
                    return teteliste;
       		 }
        else {printf("Le fichier texte est vide !!!\n");}
    	}
    else {printf("Le fichier n'existe pas !!!\n");}
    return 0;
}
#endif
