Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Codificação Huffman em C

Descrição

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.

Como compilar

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 huffman

No 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

Como rodar

Menu interativo

./huffman

ou no Windows:

huffman.exe

O programa exibirá:

Selecione uma opcao:
1 - Codificar o arquivo
2 - Decodificar o arquivo
3 - Fazer o processo completo
Opcao:

Modo por argumentos

Compactar:

./huffman c arquivo.txt

Decodificar:

./huffman d arquivo.txt.huf saida.txt

Processo completo:

./huffman t arquivo.txt

Nesse modo, o programa:

  • gera arquivo.txt.huf
  • gera arquivo_restaurado.txt

Estrutura dos arquivos

  • 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 .huf e 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

Requisitos

  • Compilador GCC
  • Sistema compatível com C

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages