This program implements Huffman coding, which is a lossless data compression algorithm.
It consists of two main classes: HuffmanEncoder for file compression and HuffmanDecoder for decompression.
- Compresses files using Huffman coding algorithm
- Decompresses files back to original form
- Supports all file types (pdf, txt, jpeg, etc.)
- Shows compression statistics
- Simple command-line interface
- Builds character frequency dictionary
- Creates Huffman tree from frequencies
- Assigns optimal binary codes to each character
- Converts input file to compressed binary stream
- Saves compressed data with frequency table header
- Extracts frequency data from compressed file
- Rebuilds original Huffman tree
- Translates binary stream back to original data
- Writes reconstructed file identical to original