1. - Algoritmo para a compressão de arquivos, principalmente arquivos textos - Atribui códigos menores para símbolos mais frequentes e códigos maiores para símbolos menos frequentes - Código é um conjunto de bits
2. Huffman desenvolveu um algoritmo para isso e mostrou que o conjunto de símbolos obtidos é o melhor para conjuntos de dados que têm a frequência de seus símbolos igual a tabela de frequência usada
3. Dado: Tabela de frequências dos N símbolos de um alfabeto Objetivo: Atribuir códigos aos símbolos de modo que os mais frequentes tenham códigos menores (menos bits)
4. Construir uma árvore binária ordenando em forma crescente a frequência de cada vértice.
5. - Árvore é de tamanho fixo (2N-1 nós), onde N é o número de caracteres - Logo sua representação pode ser sequencial (em um array) ao invés de dinâmica - Construção da árvore é das folhas para a raiz, então os ponteiros serão: filhopai - Os nós não têm os campos filhoEsquerda e filhoDireita definidos por 0 a esquerdo e 1 a direita