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.