Huffman File Compression Library

This program contains a Huffman encoder and decoder. The encoder builds a priority queue full of symbol frequencies and then, out of that, a Huffman tree. It then creates a stack of bits based on the tree. Both the tree and bits are dumped into the output file. The decoder then rebuilds the Huffman tree by traversing the tree dump and rebuilding the leaves and parents. It will use the bit stack to traverse the rebuilt tree and output a leaf whenever reached.

Attached below is the design documentation.

DESIGN.pdf