Blame view

tree.h 2.47 KB
7d87f7e2   grouille   Makefile + complè...
1
2
3
4
5
6
7
8
9
10
  // --------------------------------------------------------

  // 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>

0e62ceb1   grouille   Code propre
11
  #include <string.h>

7d87f7e2   grouille   Makefile + complè...
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
  #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é

0e62ceb1   grouille   Code propre
47
  void scan_word(Node Tree, char word[], int* error, FILE*);

7d87f7e2   grouille   Makefile + complè...
48
49
50
51
52
  

  // Retourne 'true' si le mot 'word' est non accentué, 'false' sinon

  bool no_accent(char word[]);

  

  // Transmet les mots du texte à analyser à 'scan_word'

0e62ceb1   grouille   Code propre
53
  void read_txt(FILE* fp, Node* Tree, int* error, FILE*);

7d87f7e2   grouille   Makefile + complè...
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  

  // 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);

  

0e62ceb1   grouille   Code propre
70
71
72
73
74
75
76
77
  // Ajoute une erreur

  void add_error(int*, char*, int, Node, FILE*);

  

  // Corrige les erreurs

  void make_correction(char *, int, Node, FILE*);

  

  // Initialise le programme

  void init_pgrm(void);