tree.h
2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// --------------------------------------------------------
// Projet IMA3 2019 - Lecture d'une bibliothèque
// Décompte du nombre de fautes d'orthographe dans un texte
// Normand Quentin & Rouillé Guillaume
// --------------------------------------------------------
// Initialisation des variables et inclusion des bibliothèques
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX 30 // taille maximale d'une chaîne lue dans un fichier
#define NB_CARAC 27 // nombre de caractères différents pouvant être identifiés -> 89 avec accentués
// Déclaration de la structure 'trie' ou 'arbre indexé', ainsi que des pointeurs associés
typedef struct node* Node;
typedef struct node {
char letter;
Node next[NB_CARAC];
bool endWord;
}node;
// Fonction permettant de savoir si la structure est vide
bool is_empty_tree(Node Tree);
// Fonction permettant de savoir si le tableau 'next' est un tableau de pointeurs NULL
bool is_leaf(Node Tree);
// Initialisation de la structure accueillant le dictionnaire
void init_tree(Node* Tree);
// Détermine l'indice de rangement dans le tableau 'next' du caractère 'letter'
int find_caract_indice(char letter); // Ne fonctionne pas pour les caractères accentués
// Fonction d'ajout d'un mot 'word' dans la structure 'tree' de type 'arbre indexé'
void add_in_tree(Node Tree, char word[]);
// Fonction qui détermine si le caractère est un caractère de fin de mot (espace, ',', ';', '.', etc..)
bool is_end_caract(char letter);
// Renvoi l'indice maximum du mot 'word'
char max_index(char word[]);
// Détermine si le mot 'word' est présent dans l'arbre indexé
void scan_word(Node Tree, char word[], int* error);
// Retourne 'true' si le mot 'word' est non accentué, 'false' sinon
bool no_accent(char word[]);
// Transmet les mots du texte à analyser à 'scan_word'
void read_txt(FILE* fp, Node* Tree, int* error);
// Transmet les mots de la biliothèque à 'add_in_tree'
void read_lib(FILE* fp, Node* Tree);
// A SUPPRIMER
void print_tree(Node Tree, int index);
// A SUPPRIMER
int find_index(Node tree);
// A SUPPRIMER
void print_first(Node Tree);
// Libère l'espace mémoire associé à l'arbre indexé
void free_tree(Node* Tree);