Sale!

CSC 3100 Assignment 2 solution

Original price was: $35.00.Current price is: $30.00. $25.50

Category:

Description

5/5 - (9 votes)

CSC3100 Assignment 2
Functional Requirement:
This assignment implements the Huffman tree (https://en.wikipedia.org/wiki/Huffman_coding),
which is a powerful algorithm widely in data compression. Two programs are required.
1. HuffmanCompression.java compresses a given text file (encoded with ASCII code) using
Huffman tree method with the following command:
java HuffmanCompression input.txt dictionary.txt compressed.txt
An example of input file follows:
input.txt (note: there is a linefeed symbol at the end of the following sentence)
SUSIE SAYS IT IS EASY
After constructing a Huffman tree, one file of code dictionary will be output:
dictionary.txt
10:01110
32:00
65:010
69:1111
73:110
83:10
84:0110
85:01111
89:1110
The dictionary shows that the space character will encoded as “01110” (note that 10 is the ASCII
code of the linefeed character. 32 is the ASCII code of the space character…)
The other output will be the compressed text:
compressed.txt
10011111011011110010010111010001100110001101000111101010111001110
The file gives the compressed text of the input.txt based on the dictionary shown above.
2. HuffmanDecompression.java decompresses a compressed text based on the Huffman code
dictionary with the following command:
java HuffmanDecompression compressed.txt dictionary.txt output.txt
The compressed.txt and dictionary.txt are input files obtained from the compression process. The
output file (“output.txt”) should have the same contents as “input.txt” used in the compression
process.
Program Template:
Each submission is expected to strictly follow the template to implement the required function.
1. Modify getHuffmanCode() and getCompressedCode() in HuffmanCompression.java to
implement the required compression function.
2. Modify main() in HuffmanDecompression.java to implement the required decompression
function.
Appendix
1. HuffmanCompression.java
2. HuffmanDecompression.java
3. input.txt
4. dictionary.txt
5. compressed.txt
6. output.txt