Welcome to CS 106B Shrink-It! This program uses the Huffman coding algorithm for compression. Any file can be compressed by this method, often with substantial savings. Decompression will faithfully reproduce the original. 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? 1 Read from a s)tring or f)ile? f File name to process: empty.txt Building frequency table ... 256: EOF => 1 1 character frequencies found. 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? 2 Building encoding tree ... {EOF (256), count=1} 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? 3 Building encoding map ... 256: EOF => 1 character encodings found. 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? 4 Reuse your previous string/file data for encoding? y Encoding data ... Here is the binary encoded data (0 bytes): 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? c Input file name: empty.txt Output file name (Enter for empty.huf): empty.huf Reading 0 uncompressed bytes. Compressing ... Wrote 7 compressed bytes. 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? b File name to display: empty.huf Here is the binary encoded data (7 bytes): 11011110 01001100 10101100 01101100 01011100 10001100 10111110 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? d Input file name: empty.huf Output file name (Enter for empty-out.txt): empty-out.txt Reading 7 compressed bytes. Decompressing ... Wrote 0 decompressed bytes. 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? t File name to display: empty-out.txt Here is the text data (0 bytes): 1) build character frequency table 2) build encoding tree 3) build encoding map 4) encode data 5) decode data C) compress file D) decompress file F) free tree memory B) binary file viewer T) text file viewer S) side-by-side file comparison Q) quit Your choice? q Exiting.