输入二叉树的方式可以采用先序遍历的方式,例如按照先序遍历序列的顺序输入节点的值和空节点的表示(比如使用特殊符号,如'#')。 建立链式存储的二叉树可以使用节点类来表示每个节点,节点类中包含节点的值和指向左右子节点的指针。 以下是一个示例二叉树的建立和展示代码: ```python class TreeNode: def __init__(self, value): self.val = value self.left = None self.right = None def build_tree(input_list): if not input_list: return None value = input_list.pop(0) if value == '#': return None root = TreeNode(value) root.left = build_tree(input_list) root.right = build_tree(input_list) return root def print_tree(root, depth=0): if root: print_tree(root.right, depth+1) print(" " * depth + str(root.val)) print_tree(root.left, depth+1) def preorder_traversal(root): if root: print(root.val, end=' ') preorder_traversal(root.left) preorder_traversal(root.right) def inorder_traversal(root): if root: inorder_traversal(root.left) print(root.val, end=' ') inorder_traversal(root.right) def postorder_traversal(root): if root: postorder_traversal(root.left) postorder_traversal(root.right) print(root.val, end=' ') # 示例输入 input_list = ['A', 'B', 'D', '#', '#', 'E', '#', '#', 'C', 'F', '#', '#', 'G', '#', '#'] # 建立二叉树 root = build_tree(input_list) # 横向展示二叉树 print_tree(root) # 前序遍历输出 print("前序遍历结果:") preorder_traversal(root) print() # 中序遍历输出 print("中序遍历结果:") inorder_traversal(root) print() # 后序遍历输出 print("后序遍历结果:") postorder_traversal(root) print() ``` 以上代码示例中,输入列表`input_list`为二叉树的先序遍历序列,构建二叉树后分别展示了横向凹入的二叉树结构和前、中、后序遍历的结果。 [2024-11-14 20:28:58 | AI写代码神器 | 1239点数解答]