#include #include #include #define MAX_CHARS 256 // Estrutura para representar um nó da árvore de Huffman typedef struct No { char data; unsigned freq; struct No *left, *right; }No; // Função para criar um novo nó da árvore de Huffman No* cria_no(char data, unsigned freq) { No* node = (No*)malloc(sizeof(No)); node->data = data; node->freq = freq; node->left = node->right = NULL; return node; } // Função para contar a frequência de cada caractere em um arquivo void calculaFreq(const char *filename, int freq[]) { FILE *file = fopen(filename, "r"); if (!file) { printf("Erro ao abrir o arquivo.\n"); exit(1); } // Inicializa a frequência de todos os caracteres com zero for (int i = 0; i < MAX_CHARS; i++) freq[i] = 0; char ch; while ((ch = fgetc(file)) != EOF) { freq[(unsigned char)ch]++; } fclose(file); } //**** Implementar *****/ int main() { char *filename = "texto2.txt"; int freq[MAX_CHARS]; calculaFreq(filename, freq); No *root = huffman(freq); char code[MAX_CHARS]; printf("Códigos de Huffman:\n"); printCodes(root, code, 0); return 0; }