El blog de Daniel Muñoz “No hay mayor riqueza que el conocimiento ni mayor pobreza que la ignorancia.” – Alí ibn Abi-Talib

10mar/0926

Compresión de datos mediante algoritmo de Huffman.

Hace unos años hice como trabajo para la materia de informática II un programita en lenguaje c++ que comprime archivos mediante el algoritmo de huffman.

Para compartirlo, a modo de tutorial, lo dividí en dos partes:

  1. La explicación del algoritmo de Huffman.
  2. La implementación del algoritmo de Huffman en c++.

El programa no está optimizado para ejecutarse rápido, sino para que sea fácil de entender el concepto del algoritmo.

Para utilizarlo, una vez compilado, se debe arrastrar un archivo a comprimir y soltarlo sobre el ejecutable. Por ejemplo, si arrastramos uno de los archivos fuentes: "huffman.cpp" (8.702 bytes), se crea un nuevo archivo llamado "huffman.cpp.hfm"  (6.191 bytes).

Si en cambio se arrastra y se suelta sobre el ejecutable un archivo con extensión ".hfm", el programa entiende que debe descomprimirlo. Por ejemplo arrastrando el archivo "huffman.cpp.hfm" sobre el ejecutable, éste vuelve a crear el archivo "huffman.cpp" original.