Algorithme de Huffman                        

Algorithme de Huffman

Il s'agit de mettre en oeuvre l'algorithme de Huffman étudié en cours de SDA.
L'algorithme doit calculer le code optimal de Huffman correspondant à un texte donné. L'entrée du programme sera le nom du fichier contenant le texte et la sortie du programme sera la liste sur la sortie standard des caractères du texte avec le code correspondant.
Si le fichier contient le texte :
    vingt fois sur le métier remettez votre ouvrage (Boileau),
la sortie pourrait être :
  (8 fois) : 011
( (1 fois) : 00100
) (1 fois) : 01010
B (1 fois) : 00101
a (2 fois) : 11011
e (8 fois) : 100
f (1 fois) : 111001
g (2 fois) : 01011
i (4 fois) : 1010
l (2 fois) : 11001
m (2 fois) : 11010
n (1 fois) : 111000
o (4 fois) : 1011
r (5 fois) : 000
s (2 fois) : 11000
t (5 fois) : 1111
u (3 fois) : 0100
v (3 fois) : 0011
z (1 fois) : 111011
é (1 fois) : 111010
Vous pourrez utiliser la classe ScanPlus d'un paquetage outil qui vous est fournie. Le constructeur de cette classe prend en paramètre un nom de fichier. La méthode d'instance nextChar() permet de parcourir le texte contenu dans le fichier caractère par caractère. À son premier appel, elle renvoie le premier caractère du fichier (de type char), au deuxième appel le deuxième caractère et ainsi de suite ; la méthode retourne 0 (qui est compatible avec le type char) lorsque que la fin du fichier est atteinte. Il vous suffit d'intégrer le fichier source de cette classe dans votre travail.

Vous pouvez choisir de travailler sans suivre le plan ci-dessous.

Si vous voulez suivre notre plan, vous développerez deux classes.