Implémentation codage huffman

Bonjour,

Je m'intéresse au codage de Huffman. Je voudrais l'implémenter sur python mais j'ai beaucoup de mal à créer l'arbre.
J'aimerais le créer à partir de listes.
Avez-vous des conseils ?

Cordialement

7 réponses

  1. Contributeur
    que fais-tu pour déterminer combien de fois le while a été exécuté?
    1. Je le détermine grâce à la fonction nombreetapes
      (je me base sur combien de caractères il reste à assembler pour arriver à construire l'arbre)
    2. Contributeur
      @coco01je voulais dire: as-tu vérifié qu'en réalité, la boule while était exécutée le nombre de fois souhaité? quelle technique utilises-tu pour vérifier que ton programme se comporte comme tu le souhaites?

      quand tu auras maîtrisé cela, le moment sera venu de mettre des feuilles dans ton arbre, plutôt que des arbres.
    3. J'ai essayé ma fonction avec cet exemple :

      L=["a","a","a","n","t","i"]
      M=calculfreq(L)      
      print(arbrehuff(tri_fusion(M)))   


      j'ai rajouté un print (nbdetapes) avant la boucle while
      pour cet exemple, j'obtiens nbdetapes = 2. Comme à chaque étape i augmente de 1, la boucle est parcourue bien deux fois.
    4. Contributeur
      @coco01tu souhaites que la boucle soit parcourue deux fois: as-tu vérifié que cela se passait ainsi?
    5. Je viens de mettre à la fin
      return h,i


      Pour l'exemple donné ci dessus ça me renvoie i=3, je ne comprends pas pourquoi car nbdetapes=2