Huffman encoding/decoding with building and displaying a Huffman tree. GUI created with Java FX based on the FXML file.
Huffman coding is an efficient method of compressing data without losing information. Huffman coding provides an efficient, unambiguous code by analyzing the frequencies that certain symbols appear in a message. Symbols that appear more often will be encoded as a shorter bit string while symbols that aren't used as much will be encoded as longer strings. Since the frequencies of symbols vary across messages, there is no one Huffman coding that will work for all messages. This means that the Huffman coding for sending message X may differ from the Huffman coding used to send message Y. There is an algorithm for generating the Huffman coding for a given message based on the frequencies of symbols in that particular message. Huffman coding works by using a frequency-sorted binary tree to encode symbols.
This application builds a Huffman Tree from input characters based on frequencies that certain symbols appear in a message. When the Huffman tree is builded, there is possibility to decode binary string to characters.
