def inorder(node: TreeNode) -> str: ret_value: str = "" if node.get_left_child() is not None: ret_value += "(" + inorder(node.get_left_child()) ret_value += str(node.get_root_value()) if node.get_right_child() is not None: ret_value += inorder(node.get_right_child()) + ")" return ret_value
def postorder(node: TreeNode) -> str: if node is None: return None left = postorder(node.get_left_child()) right = postorder(node.get_right_child()) if left is not None and right is not None: f = opers[node.get_root_value()] return f(left, right) else: return node.get_root_value()
def preorder(node: TreeNode, space: int = 0): if node is not None: print(" " * space, node.key) preorder(node.get_left_child(), space + 2) preorder(node.get_right_child(), space + 2)