# Class HuffmanNode

java.lang.Object
fr.iutfbleau.sae.mhuffman.HuffmanNode

public class HuffmanNode extends 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

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.
`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 Details

### 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 Details

### 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:
  `IllegalStateException` - si le nœud n'est pas une feuille

### toString

public String toString()
Représentation textuelle du nœud. Utile en phase de débogage.

Overrides:
  `toString` in class `Object`