This repo is my solution to John Crickett's Coding Challenge #3 - Write Your Compression Tool!.
- Step 0: Project setup and download test text (Les Misérables, by Victor Hugo from Project Gutenberg)
- Step 1: Program should accept a filename and produce a frequency count of all characters in the file
- Step 2: Build a binary tree from the frequencies calculated in Step #1
- Step 3: Build a prefix-free table using the binary tree from Step #2
- Step 4: Write the header section of the output file
- Step 5: Encode the file provided to the program using the prefix-free table and write it to the output file
- Step 6: Rebuild the prefix-free table from the output file's header section (reverse Step #4)
- Step 7: Decode the output file using the prefix-free table (reverse Step #5)