Método de Huffman
COMPACTAR
- Realizar un recorrido por el archivo a compactar, e ir acumulando en un arreglo de contadores de incidencias la cantidad de veces que aparece cada carácter.
- Construir un árbol binario de recorridos de tal forma que los caracteres encontrados sean hojas en la estructura. Es importante que los caracteres con mayor incidencias queden mas cercanos a la raíz .
- Etiquetar las ramas del árbol con bits, 0 rama izquierda, 1 rama derecha.
- Crear una tabla de códigos (vector) donde se registre el recorrido desde la raíz hasta una hoja especifica, señalando los bits encontrados en las ramas.
- Recorrer el archivo original e ir acumulando los bits de la nueva codificación hasta completar ocho de ellos, escribir en el archivo destino el carácter del ASCII que corresponda a los ocho bits codificados según la codificación normal.
DESCOMPACTAR
- Recuperar de los contadores de incidencias almacenados el árbol de recorridos y la cantidad de bits de relleno del ultimo carácter.
- Recorrer el archivo compactado aplicando el siguiente procedimiento para cada carácter.
- Obtener ordinal y convertirlo a binario.
- Realizar recorrido al árbol hasta llegar a una hoja.
- Guardar en el archivo destino (descompactado) el carácter encontrado en la hoja.