/** * huffman.h * * huffman utility routines API * * $Id* **/ #ifndef __HUFFMAN__ #define __HUFFMAN__ 1 // Max possible symbols; one for each 8bit ascii char #define N_ASCII 256 typedef struct huffnode_struct *huffnode; struct huffnode_struct { node heapnode; char ascii; huffnode branches[2]; }; char* new_code(char* old_code, int digit); huffnode new_huffnode(int freq, char c, huffnode left, huffnode right); void calculate_codes(huffnode hn, char* code, char* codes[]); huffnode make_huffman_tree(heap the_heap); void frequencies2huffnodes(int freqs[], huffnode nodes[]); heap huffnodes2heap(huffnode huffnodes[]); void calculate_frequencies(char* filename, int frequencies[], int start_offset, int max_chars); void print_summary(int freq[], char* codes[]); void print_analysis(int freq[], char* codes[]); #endif