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:
- La explicación del algoritmo de Huffman.
- 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.