用顺序存储结构来存储一颗具有n个结点的二叉树,编写算法实现对该二叉树进行先序遍历,输出先序遍历序列
时间: 2023-06-16 20:03:23 浏览: 98
二叉树_17281183_刘梦婷_splitns2_扩展先序序列_二叉树_
我们可以使用数组来存储二叉树,对于第i个节点,它的左子节点存储在2i位置上,右子节点存储在2i+1位置上,父节点存储在i/2位置上。
下面是先序遍历的递归实现:
```python
def pre_order_traversal(tree, i):
if i >= len(tree) or tree[i] is None:
return
print(tree[i], end=" ")
pre_order_traversal(tree, 2*i)
pre_order_traversal(tree, 2*i+1)
```
其中,tree是存储二叉树的数组,i是当前节点的位置。
我们可以从根节点开始遍历整个树:
```python
tree = [None, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
pre_order_traversal(tree, 1)
```
输出结果为:`A B D H E I C F G`,即为先序遍历序列。
阅读全文