顺序存储二叉树就是可以用数组表示树;用数组的方法时,节点存在数组中,而不是使用引用,节点在数组中的位置对应它在树中的位置,下表为0的节点是根,为1的是左子树,2是右子树,依次类推
节点在数组中的索引值为index(index从0开始,对应代表在二叉树的第几个元素)
1.适用于满树(完全二叉树)
2.节点的左子节点2*index+1
3.节点的右子节点2*index+2
4.父节点(index-)/2
图示
Java示例
class ArrayBinaryTree {
private int[] array;
public ArrayBinaryTree(int[] array) {
this.array = array;
}
//前序遍历
public void preOrder(int index) {
if (array == null || array.length == 0) {
System.out.println("数组为空,无法遍历");
return;
}
//输出当前节点
System.out.println(array[index]);
//遍历左子树
if (2 * index + 1 < array.length) {
preOrder(2 * index + 1);
}
//遍历右子树
if (2 * index + 2 < array.length) {
preOrder(2 * index + 2);
}
}
}