Source: https://projet.eu.org/pedago/sin/term/5-huffman.pdf