Recursively traverse the Huffman Tree to set each Letter's bitstring dictionary, and return the list of Letters
(root: Letter | TreeNode, bitstring: str)
| 52 | |
| 53 | |
| 54 | def traverse_tree(root: Letter | TreeNode, bitstring: str) -> list[Letter]: |
| 55 | """ |
| 56 | Recursively traverse the Huffman Tree to set each |
| 57 | Letter's bitstring dictionary, and return the list of Letters |
| 58 | """ |
| 59 | if isinstance(root, Letter): |
| 60 | root.bitstring[root.letter] = bitstring |
| 61 | return [root] |
| 62 | treenode: TreeNode = root |
| 63 | letters = [] |
| 64 | letters += traverse_tree(treenode.left, bitstring + "0") |
| 65 | letters += traverse_tree(treenode.right, bitstring + "1") |
| 66 | return letters |
| 67 | |
| 68 | |
| 69 | def huffman(file_path: str) -> None: |