Implementación Algoritmo de Huffman, código original de Salvador Pozo Coronado
Compresin de archivos usando el Algoritmo de Huffman, cdigo fuente original de Salvador Pozo Coronado (2000), con mnimas correcciones de Mariano Ruiz (2018-2021).
En el branch
modo-debug
est una version que agrega unas funciones que imprimen en el error stream (consola) la tabla de frecuencias, la codificacin Huffman usada, junto con una representacin en rbol binario (ver modo-debug#Ejecucin).
Cdigo fuente original en C++: link original (roto), web archive.
Cdigo fue portado a C: mnimos cambios ya que el cdigo original en C++ no haca uso de programacin orientada a objetos, pero haca uso de referencias que no son compatibles con C.
Fix error en cmo se lea el archivo que causaba que no se pudiera usar para comprimir archivos binarios o con ms de 128 caracteres diferentes.
Archivos fuentes re-encodeados a UTF-8 en vez del viejo encoding ASCII ISO-8859-1, que haca in-leble los comentarios con caracteres diacrticos en cualquier editor moderno.
Tambin se agrega script para compilar con CMake ambos
comandos compres
y decompres
:
$ cmake . && make
Al tener CMake configurado puede ser compilado en cualquier
plataforma (no solo *nix), y directamente importado en CLion.
Los comandos tambin pueden ser instalados en /usr/local/bin
una vez ejecutado cmake .
con sudo make install
.
De todos modos los comandos tambin pueden ser compilados solo con un compilador C como gcc:
$ cc compres.c -o compres
$ cc decompres.c -o decompres
Una vez generados los ejecutables, para comprimir un archivo:
$ ./compres hello.txt hello.txt.compres
El archivo comprimido hello.txt.compres
puede ser descomprimido
luego con:
$ ./decompres hello.txt.compres hello.txt