Salut,
Je pense que ton problème est lié à l'effet de bord de la variable Codage dans la procedure Creer_Table_iter.
En effet dans Creer_Table_iter, au premier appel on passe à gauche, et au seconde appel, on passe à droite de l'arbre et on ajoute le codage '0' à la lettre la plus utilisé, car c'est une feuille. Au retour de cet appel, on ajoute le bit 1 à la file donc on a '01' ce qui n'existe pas... Tu gardes toujours les bits précédents dans la variable globale Codage.
Un problème de plus sur ta structure de données, il y a conflit de référence, car tu modifie la file à chaque appel, mais le pointeur de tête pointe au même endroit... A la fin tous les lettres auront le même codage. Car il n'y a qu'une seule file...
Je parle de file, car tu utilise la liste comme une file. Il te faudrait ajouter la procedure pour supprimer des elements de tête. Le mieux, je pense, serait de créer un type File spécifique dans un paquetage, pour contrer le problème de référence.