-
Notifications
You must be signed in to change notification settings - Fork 0
/
listeArbres.h
89 lines (69 loc) · 2.23 KB
/
listeArbres.h
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#ifndef ListeArbres_H
#define ListeArbres_H
#include "arbre.h"
/**
* \struct element
* \brief structure des éléments composants une liste d'arbres
**/
typedef struct element {
Arbre arbre;
struct element* suivant;
} *ListeArbres;
/**
* \fn ListeArbres liste_creer(void);
* \brief Renvoie NULL
*
**/
ListeArbres liste_creer(void);
/**
* \fn bool liste_estVide(ListeArbres);
* \brief Renvoie true (1) si la liste l est vide et false (0) sinon
*
* \param l liste d'arbres
**/
bool liste_estVide(ListeArbres);
/**
* \fn void liste_afficher(ListeArbres);
* \brief Affiche la liste des caractères associée a leur fréquence d'apparition
*
* \param l liste d'arbres étant des feuilles
**/
void liste_afficher(ListeArbres);
/**
* \fn ListeArbres liste_insererTriArbre(ListeArbres, Arbre);
* \brief Renvoie une liste construite à partir de la liste et de l'arbre en paramètres
*
* \param l liste d'arbres triée
* \param a arbre à insérer
**/
ListeArbres liste_insererTriArbre(ListeArbres, Arbre);
/**
* \fn Arbre liste_tete(ListeArbres);
* \brief Renvoie l'arbre en tête de la liste en paramètre (fréquence la plus faible de la liste)
*
* \param l liste d'arbres triée
**/
Arbre liste_tete(ListeArbres);
/**
* \fn ListeArbres liste_supprimerTete(ListeArbres);
* \brief Supprime le premier arbre de la liste en paramètre et renvoie la nouvelle liste
*
* \param l liste d'arbres triée
**/
ListeArbres liste_supprimerTete(ListeArbres);
/* construction de l'arbre de huffman à partir d'un tableau de fréquence */
/**
* \fn ListeArbres liste_construitListeArbres(int freq[256]);
* \brief Construit une liste d'arbres (contenant chacun une seule feuille) à partir du tableau de fréquences obtenu suite à l'analyse d'un fichier
*
* \param freq tableau des fréquences d'apparition des caractères ASCII
**/
ListeArbres liste_construitListeArbres(int freq[256]);
/**
* \fn Arbre liste_construitArbre(int freq[256]);
* \brief Renvoie l'arbre de Huffman construit à partir du tableau de fréquences en paramètre.
*
* \param l liste d'arbres (contenant chacun une unique feuille) correspondant à la liste des caractères apparaissant dans le fichier analysé
**/
Arbre liste_construitArbre(ListeArbres);
#endif