Class HuffmanNode


  • public class HuffmanNode
    extends java.lang.Object
    Représente un nœud de l'arbre de Huffman. Un nœud peut être : - une feuille : il contient une valeur (symbole de 0 à 255) et sa fréquence - un nœud interne : il n'a pas de valeur mais possède deux enfants et une fréquence correspondant à la somme des fréquences de ces enfants Cette classe sert uniquement de structure pour construire l'arbre de Huffman, utilisé ensuite pour générer les codes dans la compression.
    • Constructor Summary

      Constructors 
      Constructor Description
      HuffmanNode​(int value, int frequence)
      Constructeur d'un nœud feuille.
      HuffmanNode​(HuffmanNode left, HuffmanNode right)
      Constructeur d'un nœud interne (créé lors de la fusion de deux sous-arbres).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getFrequence()
      Renvoie la fréquence associée à ce nœud.
      HuffmanNode getLeft()
      Renvoie le fils gauche.
      HuffmanNode getRight()
      Renvoie le fils droit.
      int getValue()
      Renvoie la valeur du symbole représenté.
      boolean isLeaf()
      Indique si le nœud est une feuille.
      java.lang.String toString()
      Représentation textuelle du nœud.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • HuffmanNode

        public HuffmanNode​(int value,
                           int frequence)
        Constructeur d'un nœud feuille.
        Parameters:
        value - symbole représenté (entre 0 et 255)
        frequence - fréquence d'apparition du symbole
      • HuffmanNode

        public HuffmanNode​(HuffmanNode left,
                           HuffmanNode right)
        Constructeur d'un nœud interne (créé lors de la fusion de deux sous-arbres).
        Parameters:
        left - fils gauche
        right - fils droit
    • Method Detail

      • isLeaf

        public boolean isLeaf()
        Indique si le nœud est une feuille.
        Returns:
        true si le nœud est une feuille, false sinon
      • getFrequence

        public int getFrequence()
        Renvoie la fréquence associée à ce nœud.
        Returns:
        fréquence du symbole ou somme des fréquences
      • getLeft

        public HuffmanNode getLeft()
        Renvoie le fils gauche.
        Returns:
        fils gauche ou null si feuille
      • getRight

        public HuffmanNode getRight()
        Renvoie le fils droit.
        Returns:
        fils droit ou null si feuille
      • getValue

        public int getValue()
        Renvoie la valeur du symbole représenté.
        Returns:
        valeur du symbole (0 à 255)
        Throws:
        java.lang.IllegalStateException - si le nœud n'est pas une feuille
      • toString

        public java.lang.String toString()
        Représentation textuelle du nœud. Utile en phase de débogage.
        Overrides:
        toString in class java.lang.Object