41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
#ifndef _LISTE_HUFFMAN_H_
|
|
#define _LISTE_HUFFMAN_H_ 1
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
// Définition d'une Celulle/Noeud
|
|
typedef struct cel {
|
|
char lettre; // lettre
|
|
int frequence; // fréquence dans laquelle la lettre apparaît dans le texte
|
|
struct cel *gauche; // utile en tant que noeud
|
|
struct cel *droite; // utile en tant que noeud
|
|
struct cel *suivant; // utile en tant que cellule
|
|
} Cellule;
|
|
|
|
// Définition d'une Liste chainée
|
|
typedef Cellule *Liste;
|
|
|
|
/*
|
|
Ajoute une lettre (qui sera automatiquement transformé
|
|
en cellule si elle n'existe pas déjà) dans la liste, avec
|
|
sa bonne occurence (la met à jour si la lettre existait déjà)
|
|
*/
|
|
void ajouter(Liste *liste, char lettre);
|
|
|
|
// Alloue une cellule pour la liste
|
|
Cellule *allouerCellule(char lettre);
|
|
|
|
// Affiche la liste
|
|
void afficherListe(Liste liste, FILE *fichier);
|
|
|
|
// Vide la liste
|
|
void viderListe(Liste liste);
|
|
|
|
// Trie la liste en fonction des occurences
|
|
void trierListe(Liste *liste);
|
|
|
|
// Ajoute une cellule en tête de liste
|
|
void ajouterEnTete(Liste *liste, Cellule *cellule);
|
|
|
|
#endif
|