已知二叉树采用二叉链表存储,编写程序,要求建立一棵二叉树,并输出横向显示
时间: 2024-01-08 10:02:06 浏览: 107
好的,我可以为您编写建立二叉树并横向输出的程序。以下是Python代码示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_tree():
val = input("请输入节点的值(输入#表示空节点):")
if val == "#":
return None
node = TreeNode(int(val))
node.left = build_tree()
node.right = build_tree()
return node
def print_tree(root, depth=0):
if not root:
return
print_tree(root.right, depth+1)
print(" " * 4 * depth + "->", root.val)
print_tree(root.left, depth+1)
if __name__ == "__main__":
root = build_tree()
print_tree(root)
```
程序中的`TreeNode`类定义了二叉树的节点,包括节点值`val`、左右子节点`left`和`right`。`build_tree`函数用于递归构建二叉树,根据用户的输入,如果输入的是`#`表示空节点,否则创建一个新节点,并递归调用`build_tree`函数构建左右子树。`print_tree`函数用于横向输出二叉树,采用中序遍历的倒序输出,即先输出右子树,再输出当前节点,最后输出左子树,同时在输出节点前加上适当数量的空格,保证节点的对齐。在主函数中,首先调用`build_tree`函数构建二叉树,然后调用`print_tree`函数输出二叉树。
阅读全文