Mylloon
8a368746d6
- Update comment on `ajouterLettre` - Update function name and its comment - Fix order in sort function - Add function who add a cell in the right frequency order
42 lines
1.2 KiB
C
42 lines
1.2 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 (en tête
|
|
de liste), avec sa bonne occurence (la met à jour si la lettre
|
|
existait déjà).
|
|
*/
|
|
void ajouterLettre(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 (tri à bulle).
|
|
void trierListe(Liste *liste);
|
|
|
|
// Ajoute une cellule dans une liste rangée en préservant l'ordre
|
|
void ajouterRangee(Liste *liste, Cellule *cellule);
|
|
|
|
#endif
|