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()
示例#3
0
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)