<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\chapter{Manuel d'utilisation}
\paragraph{}
Ce projet g�n�re deux binaire. Le premier appel� testTas n'est qu'une petite application nous permettant d'utiliser l'API
C++ g�n�r�e par notre classe de file de priorit�s. Voici un exemple d'ex�cution:
\begin{verbatim}
Priority list type: 0 - Binary Heap
Choice: Please select an action
a - Add a key into the priority list
c - Change priority list type
d - Delete a Key from the priority list
e - Extract Min onto the priority list
l - Lower Key onto a key of the priority list
p - Print the current priority list on the screen
r - Remove the whole priority list
t - Test the priority list algorithms
q - Quit
\end{verbatim}

A partir de cet instant, le programme nous propose un menu nous permettant d'effectuer plusieurs actions sur le tas. La
fonction 'a' permet d'ajouter une clef dans le tas en cours. Comme il est impossible d'effectuer une recherche sur un tas
pour y retrouver le pointeur d'un �l�ment, le programme nous propose de sauvegarder le pointeur r�sultat dans un tableau:

\begin{verbatim}
Choice: Please select a slot to save the cell
0 - Empty slot
1 - Empty slot
2 - Empty slot
3 - Empty slot
4 - Empty slot
5 - Empty slot
6 - Empty slot
7 - Empty slot
8 - Empty slot
9 - Empty slot
n - Don't store
c - Cancel
\end{verbatim}

Ce tableau apparaitra r�guli�rement dans toutes les fonctions du menu afin de choisir une cellule sur laquelle agir. Toutes
les fonctions du menu parlent d'elles m�mes. La fonction 't' va lancer une batterie de tests sur les algorithmes de la
file de priorit� s�lectionn�e.

\paragraph{}
Le deuxi�me binaire g�n�r� est 'Huffman'. Il sert � utiliser l'algorithme d'huffman impl�ment�. Voici sa ligne d'aide:
\begin{verbatim}
$ ./Huffman -h
Huffman [{-f|-i} file] {type}
Huffman -h
This will encode the input file with the Huffman code
using the priority list defined by type.
Type is a number taken from this list:
  0 : Binary Heap (default)
  1 : Binomial Heap
  2 : Fibonacci Heap
  3 : Sorted chained list
-f file means that you specify a dictionnary file which is
        structured as described into the README file.
-i file means that you specify a file to encode. It will
        built a quiet dumb dictionnary.
By default, a dictionnary will be built from stdin.
-h prints this help and exit.
\end{verbatim}

La structure d'un dictionnaire est la suivante:
\begin{verbatim}
Mot1 : Fr�quence1
Mot2 : Fr�quence2
...
\end{verbatim}

Chaque mot est une cha�ne de caract�res servant � identifier la fr�quence associ�e. Voici un exemple complet de dictionnaire
et d'utilisation du programme avec ce dictionnaire:

\begin{verbatim}
Pixel@the-babel-tower:~/Projets_LI/Semestre1/Projet-Algo/src$ cat dict.sample
MOT1 : 2000
MOT2 : 1234
MOT3 : 15987
MOT4 : 1203
MOT5 : 192837
MOT6 : 12987
Pixel@the-babel-tower:~/Projets_LI/Semestre1/Projet-Algo/src$ ./Huffman -f dict.sample   
MOT3 (15987) = 00
MOT1 (2000) = 0100
MOT4 (1203) = 01010
MOT2 (1234) = 01011
MOT6 (12987) = 011
MOT5 (192837) = 1
Bitstream length           : 283957 bits (= 35495 bytes)
Real size input            : 7239936 bits (= 904992 bytes)
Size squeezed by           : 96.0779 percents
Dictionnary size           : 336 bits (= 42 bytes)
Total bitstream length     : 284293 bits (= 35537 bytes)
Real gain (4 bytes header) : 96.0728 percents
\end{verbatim}

Il est indiqu� que le programme est capable de g�n�rer un dictionnaire � partir d'un fichier. Il s'agit simplement de compter
les caract�res provenant de l'entr�e et d'en g�n�rer un dictionnaire. Exemple:

\begin{verbatim}
$ cat dict.sample | Huffman 
\32 (12) = 00
6 (1) = 01000
4 (2) = 01001
3 (4) = 0101
0 (4) = 0110
5 (2) = 01110
7 (3) = 01111
1 (6) = 1000
M (6) = 1001
: (6) = 1010
\10 (6) = 1011
O (6) = 1100
8 (3) = 11010
9 (3) = 11011
2 (6) = 1110
T (6) = 1111
Bitstream length           : 294 bits (= 37 bytes)
Real size input            : 608 bits (= 76 bytes)
Size squeezed by           : 51.6447 percents
Dictionnary size           : 512 bits (= 64 bytes)
Total bitstream length     : 806 bits (= 101 bytes)
Real gain (4 bytes header) : -38.1579 percents
\end{verbatim}
</pre></body></html>