Lossless compression is a type of data compression that allows the original data to be
recovered from the compressed data. Huffman encoding is a compression technique that
reduces the number of bits needed to store a message based on the idea that more frequent
letters should have a shorter bit representation and less frequent ones should have a longer bit
representation. Text compression is useful when we wish to reduce bandwidth for digital
communications, so as to minimize the time required to transmit text. Text compression is
also used to store large documents more efficiently, for instance allowing your hard drive to
contain as many documents as possible.
In this assignment, you will implement the Huffman compression and decompression
Objectives: Practice implementing tree-based data structures. Practice analyzing different
alternative implementations for auxiliary data structures (priority queues). Appreciation of
how data structures can be used for practical purposes. Having fun while learning.