25-NSIPE2-2
-
- Exemple de feuille : \(\small (\texttt{j},\ 1)\)
- La racine de l'arbre : \(\small (\texttt{ }-\texttt{j}-\texttt{f}-\texttt{e}-\texttt{l}-\texttt{i}-\texttt{p}-\texttt{t}-\texttt{a}-\texttt{u},\ 19)\)
-
Le nœud correspondant au caractère \(\texttt{p}\) se situe à 4 arêtes de la racine, donc sa profondeur est de 4. Son code associé est \(\boxed{\texttt{1100}}\).
-
Suivant cette compression, plus un caractère est fréquent, plus son code binaire associé est court, ce qui réduit la longueur totale du message compressé.
-
def conversion_en_noeuds(liste_tuples): return [Noeud(nom, nb_occu, None, None) for nom, nb_occu in liste_tuples]
Ou plus simplement :
-
def construit_arbre(liste): while len(liste) > 1: noeud1 = liste.pop(0) noeud2 = liste.pop(0) nom_noeud_pere = noeud1.nom + '-' + noeud2.nom nb_occu_noeud_pere = noeud1.nb_occu + noeud2.nb_occu noeud_pere = Noeud(nom_noeud_pere, nb_occu_noeud_pere, noeud1, noeud2) insere_noeud(noeud_pere, liste) return liste[0]
-
Il s'agit d'un dictionnaire où chaque clé est un caractère et sa valeur associée son code binaire. Les clés et les valeurs sont des chaînes de caractères.