Este projeto implementa o algoritmo de compressão de dados de Huffman em C. Ele permite:
- codificar (compactar) arquivos em
.huf - decodificar arquivos
.huf - executar o processo completo: compactar e depois restaurar o arquivo automaticamente
As mensagens do programa estão em português e o menu funciona no terminal.
No terminal, dentro da pasta do projeto, execute:
gcc arvore.c main.c codificador.c codigo.c decodificador.c dicionario.c arquivos.c lista_encad.c tabela_freq.c -o huffmanNo Windows, se quiser gerar .exe:
gcc arvore.c main.c codificador.c codigo.c decodificador.c dicionario.c arquivos.c lista_encad.c tabela_freq.c -o huffman.exe./huffmanou no Windows:
huffman.exeO programa exibirá:
Selecione uma opcao:
1 - Codificar o arquivo
2 - Decodificar o arquivo
3 - Fazer o processo completo
Opcao:
Compactar:
./huffman c arquivo.txtDecodificar:
./huffman d arquivo.txt.huf saida.txtProcesso completo:
./huffman t arquivo.txtNesse modo, o programa:
- gera
arquivo.txt.huf - gera
arquivo_restaurado.txt
- main.c: menu principal e chamadas do processo de compactação, descompactação e processo completo
- arvore.c: criação, verificação e liberação da árvore de Huffman
- codificador.c: compressão dos dados em formato
.huf - decodificador.c: leitura do
.hufe reconstrução do arquivo original - codigo.c: manipulação dos códigos binários
- dicionario.c: geração e liberação do dicionário Huffman
- arquivos.c / arquivos.h: leitura de arquivos e manipulação de nomes/extensões
- lista_encad.c: lista encadeada ordenada usada para montar a árvore
- tabela_freq.c: criação da tabela de frequências dos bytes
- types.h: definições de tipos, structs e protótipos
- Compilador GCC
- Sistema compatível com C