/// <summary>
/// Edité par Diallo Apha
/// aokdiallo@hotmail.com
/// Version du 13 Mars 2008
///
/// Cette Classe est L'implementation economique en memoire et en performace d'un dictionnaire.
/// En effet dans plusieurs applications telque les jeux de mots ou les editeurs de texte on a besoin d'un dictionnaire.
///
/// A -> Une premiere approche facile :
///
/// est de stocker dans un fichier tous les mots du dictionnaire.
/// Les problemes de cette approche sont :
/// 1 ->
/// la taille du fichier sera enorme
/// 2 ->
/// la recherche d'un mot est tres couteuse car à chaque fois il faut ouvrir le fichier et le parcourir en comparant à chaque fois le mot lut
/// avec le mot cherché.
///
/// B ->
/// Approche utiliséé dans ce projet :
///
/// le dictionnaire est une liste de noeuds.
/// chaque noeud represente une lettre et possede un lien ver d'autres noeuds
/// je m'explique :
/// par exemple le mot "AN" correspond au noeud('A') qui pointe vers le noeud ('N')qui à son tour pointe vers le noeud('\0')
/// '\0' representant le caractere de fin de mot.
/// là ou ça devient interessant c'est quand par exemple on veut ajouter les mots "ANE" et "ANES" dans le dico :
///
/// dans le cas de la premiere approche on aurait simplement ajouté ANE et ANES dans le fichier ce qui fait pour "AN" et "ANE" et "ANES" 9 caracteres.
///
/// dans la deuxieme approche on a deja le mot "AN" dans le dico donc il suffit de faire pointer le noeud (N) vers un nouveau noeud(E) puis
/// faire pointer le noeud (E) vers un nouveau noeud(\0) pour ANE.
/// ensuite
/// faire pointer le noeud (E) vers un nouveau noeud(S)
/// puis
/// faire pointer le noeud (S) vers un nouveau noeud(\0) pour ANES.
/// au final on a que 7 noeuds.
/// Voire la figure ci dessous :
/// A
/// |
/// \0<-N->E->\0
/// |
/// S->\0
/// mais le plus interessant à remarquer est que :
/// pour passer de An à ANE puis ANES on a rajouté 7 caracteres avec la premiere approche alors
/// qu'avec la deuxieme on n'en n'a rajouté que 4
/// on voit donc que le fait de reutiliser les lettres deja presentes nous fait enormement gagner en place memoire.
///
/// Ensuite pour verifier l'existance d'un mot avec la deuxieme approche c'est tres rapide
/// car on sais facilement trouver le noeud de la premiere lettre
/// du mot cherché.
/// à partir de là il suffit de tester les noeuds suivants en comparant les lettres avec celles du mot.
///
/// </summary>