Exemple #1
0
def __huffman_helper(real: HuffmanTree) -> None:
    """Helper function for build_huffman trees where it basically goes through
    the tree turning the internal nodes symbols to None"""
    if not real.is_leaf and real is not None:
        real.symbol = None
        __huffman_helper(real.left)
        __huffman_helper(real.right)
Exemple #2
0
def __preorder_pls(tree: HuffmanTree, freq_dict: Dict[int, int],
                   ff: Dict[int, int]) -> None:
    if tree.is_leaf and tree.symbol is not None:
        tree.symbol = freq_dict[max(freq_dict.keys())]
        freq_dict.pop(max(freq_dict.keys()))
    else:
        __preorder_pls(tree.left, freq_dict, ff)
        __preorder_pls(tree.right, freq_dict, ff)
def _swap(tree: HuffmanTree, dic: Dict) -> None:
    """
    Swaps the values.
    """
    if tree.symbol:
        if tree.symbol in dic:
            tree.symbol = dic[tree.symbol]
    else:
        _swap(tree.left, dic)
        _swap(tree.right, dic)