Module dsa.huffman
Module to access functions for Huffman Compression.
Functions
def bitstring_to_bytes(s: str) ‑> bytes
-
Convert a bitstring to bytes.
Args
s
:str
- The bitstring.
Returns
Bitstring converted to bytes.
def build_frequency_table(s: str) ‑> PriorityQueue
-
Accepts a string to encode and returns a heap of the characters.
Args
s
:str
- The string to encode.
Returns
A priority queue of the characters based on frequencies.
def build_huffman_dictionary(node: TreeNode, bit_string: str = '') ‑> dict
-
Given a TreeNode, build a Huffman Dictionary.
Args
node
:TreeNode
- The Huffman Node.
bit_string
:str
- The bit string.
Returns
A Huffman Dictionary.
def build_huffman_tree(pq: PriorityQueue) ‑> Tree
-
Accepts a priority queue and returns a Huffman Tree.
Args
pq
:PriorityQueue
- A PriorityQueue containing TreeNodes of characters based on frequencies.
Returns
A Huffman Tree.
def bytes_to_bitstring(ba: bytes, bitlength: int = 8) ‑> str
-
Convert bytes to bitstring.
Args
ba
:bytes
- The bytes to convert.
bitlength
:int
- The bit length.
Returns
The bytes converted to bitstring.
def character_frequency(s: str) ‑> dict
-
Takes a string a returns a dictionary of character frequencies.
Args
s
:str
- The string to analyze.
Returns
Dictionary containing character frequency.
def huffman_decode(encoded_data: str, tree: Tree) ‑> str
-
Decode the encoded data using the Huffman Tree.
Args
encoded_data
:str
- The encoded data.
tree
:Tree
- The Huffman Tree.
Returns
The decoded data.
def huffman_encode(st: str, hd: dict) ‑> str
-
Encode the string using the Huffman Dictionary.
Args
st
:str
- The string to encode.
hd
:dict
- The Huffman Dictionary.
Returns
The encoded string.