Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if root_index < 0:
- root_index += len(node_lst)
- if node_lst[root_index].r_type != 0 and node_lst[root_index].l_type != 0:
- last_huff = HuffmanTree(None, None, generate_tree_postorder(node_lst[:len(node_lst)-1], root_index - 1))
- index_jump = num_nodes_int(last_huff.right)
- last_huff.left = generate_tree_postorder(node_lst[:len(node_lst) - index_jump - 1], root_index - 1 - index_jump)
- return last_huff
- elif node_lst[root_index].l_type != 0 and node_lst[root_index].r_type == 0:
- return HuffmanTree(None, generate_tree_postorder(node_lst[:len(node_lst)-1], root_index - 1), HuffmanTree(node_lst[root_index].r_data))
- elif node_lst[root_index].r_type != 0 and node_lst[root_index].l_type == 0:
- return HuffmanTree(None, HuffmanTree(node_lst[root_index].l_data), generate_tree_postorder(node_lst[:len(node_lst)-1], root_index - 1))
- else:
- return HuffmanTree(None, HuffmanTree(node_lst[root_index].l_data), HuffmanTree(node_lst[root_index].r_data))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement