Programming a lexicographic tree in C with OrcaC under GNOME Les arbres lexicographiques sont un moyen efficace de représenter des dictionnaires (ensembles de mots). Ce sont des arbres n-aires étiquetés par des caractères. Chaque branche représente un mot du dictionnaire. La fin des mots est signalée par le caractère '.' afin de coder un mot qui serait le préfixe d'un autre mot du dictionnaire, et la racine commune à tous les mots est aussi le caractère '.'. Enfin, les fils de tout noeud sont ordonnés. Sur l'exemple suivant nous avons représenté l'ensemble de mots {main, male, mie, mite, pic, pile, pis, port, porte}. . / \ / \ m \ / \ \ a i \ / / \ \ i e t \ / / \ \ n [ ] e \ / \ \ [ ] [ ] \ p / \ / \ i o /|\ \ / | \ r c l s \ | | \ t [ ] e [ ] |\ | [ ]\ [ ] e | [ ] main male mie mite pic pile pis port porte L'objectif de ce TP est d'écrire les fonctions nécessaires pour la gestion de tels arbres. Vous utiliserez la structure suivante (et la fonction habituelle CreerMaillon(e,fa,fr)) typedef struct noeud *ARBRE; struct noeud { char e; /* Etiquette */ ARBRE fa, fr; /* Fils aîné et frère */ }; Les fonctions qui nous intéressent sont : (1) CreerArbreVide pour créer un arbre représentant un dictionnaire (2) Inserer pour insérer un mot dans un arbre donné (3) Chercher pour déterminer si un mot apparaît dans un arbre (4) Afficher qui affiche tous les mots d'un arbre (5) Supprimer pour supprimer un mot d'un arbre (6) AjoutMotsFichier pour insérer dans un arbre tous les mots figurant dans un fichier donné (on suppose les mots séparés par des espaces, tabulations ou retour chariots).