Blame view

tree.h~ 2.25 KB
6aacc52e   grouille   Correction légère
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);