python二叉树顺序存储结构代码
时间: 2023-08-06 19:22:44 浏览: 91
二叉树的顺序存储结构
4星 · 用户满意度95%
二叉树的顺序存储结构一般使用数组来实现,具体的实现方式如下:
```python
class ArrayBinaryTree:
def __init__(self, max_size):
self.max_size = max_size
self.array = [None] * max_size
def add_node(self, value):
if self.array[0] is None:
self.array[0] = value
else:
i = 0
while True:
if self.array[i] is None:
self.array[i] = value
break
elif value < self.array[i]:
i = 2 * i + 1
else:
i = 2 * i + 2
if i >= self.max_size:
return "Out of range"
def pre_order_traversal(self, index):
if index >= self.max_size or self.array[index] is None:
return
print(self.array[index], end=" ")
self.pre_order_traversal(2 * index + 1)
self.pre_order_traversal(2 * index + 2)
def in_order_traversal(self, index):
if index >= self.max_size or self.array[index] is None:
return
self.in_order_traversal(2 * index + 1)
print(self.array[index], end=" ")
self.in_order_traversal(2 * index + 2)
def post_order_traversal(self, index):
if index >= self.max_size or self.array[index] is None:
return
self.post_order_traversal(2 * index + 1)
self.post_order_traversal(2 * index + 2)
print(self.array[index], end=" ")
```
其中,`max_size`表示数组的最大长度,`array`表示存储二叉树节点的数组。`add_node`方法用于向二叉树添加节点,`pre_order_traversal`、`in_order_traversal`和`post_order_traversal`分别表示二叉树的先序遍历、中序遍历和后序遍历。
阅读全文