1.介绍:
二叉树的顺序存储就是用一组连续的存储单元(数组)存放二又树中的结点元素,一般按照二叉树结点自上向下、自左向右的顺序存储。
2.示意图
3.顺序存储二叉树特点:
- 顺序二叉树通常只考虑完全二叉树
- 第n个元素的左子结点为2*n+1
- 第n个元素的右子结点为2*n+2
-
第n个元素的父结点为(n-1)/2
- n表示二叉树中第几个元素,按编号从0开始
4.顺序存储二叉树的遍历:
代码实现:
package tree;
/**
* @author WuChenGuang
*/
public class ArrayBinaryTree {
private final int[] arrays;
public ArrayBinaryTree(int[] arrays) {
this.arrays = arrays;
}
/**
* 前序遍历顺序存储二叉树
*/
public void preSelect(int index) {
if (this.arrays == null || arrays.length == 0) {
System.out.println("存储数组为空...");
}
// 向左递归
assert arrays != null;
if ((index * 2 + 1) < arrays.length) {
preSelect(index * 2 + 1);
}
// 向右递归
if ((index * 2 + 2) < arrays.length) {
preSelect(index * 2 + 2);
}
}
}