建立二叉树的存储结构并输出
时间: 2024-10-27 08:02:26 浏览: 18
建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数
建立二叉树的存储结构通常有两种常见的方式:顺序存储和链接存储。
1. **顺序存储** (也称数组存储):将二叉树节点按照层次遍历(如先序、中序或后序)的方式存储在一个线性的数组中。例如,在中序遍历的顺序下,根节点之后会是左子树,再然后是右子树。这种结构适用于完全平衡的二叉树,但对于非平衡树,可能会浪费空间,因为不是所有层级都等深。
2. **链式存储** (或称为动态存储):每个节点包含一个指向其左孩子、右孩子和父节点的指针。这种方法更灵活,不需要预先知道树的高度,可以处理任意形状的二叉树。但是,查找特定节点需要从头开始遍历。
以下是简单的链式存储结构的一个例子(假设我们有一个节点类`Node`,有属性`value`, `left`, 和 `right`):
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
# 创建一个二叉树节点
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
# 输出二叉树(递归遍历)
def print_tree(node):
if node is not None:
print_tree(node.left)
print(node.value)
print_tree(node.right)
print_tree(root)
```
阅读全文