Create lossless static compression using Huffman trees.
Execute the command make
and it should compile using the provided makefile. Programs were created and tested on Ubuntu 20.04.
Run the compiled binary with ./encode
or ./decode
- -i
input file
: file that is encoded/decoded - -o
output file
: file that encoding/decoding is stored in - -v : print compression statistics
- -h help : how to use function
This makefile compiles the program.
- remove binaries using
make clean
- run a memory leak test using
make scan-build
- format code using
make format
This file contains the implementation of the Huffman encoder.
This file contains the implementation of the Huffman decoder.
This file contains a program for calculating entropy.
This file contains macro definitions for common values like the buffer size and max tree size.
This file contains the node ADT interface.
This file contains the implementation of the node ADT.
This file contains the stack priority queue ADT interface.
This file contains the implementation of the priority queue ADT.
This file contains the code ADT interface.
This file contains the implementation of the code ADT interface.
This file contains the I/O module interface.
This file contains the implementation for the I/O module.
This file contains the stack ADT interface.
This file contains the implementation of the stack ADT.
This file contains the Huffman coding module interface.
This file contains the implementation of the Huffman coding module interface.
This document details how the program was designed. This includes:
- The objective of the assignment
- What was given in the lab doc
- General explanation for code implementation
HIDDEN FOLDERS
.DESIGN contains the LaTeX document for the design document