顺序存储二叉树
基本说明
从数据的存储来看,数组存储方式和树的存储方式可以相互转化,即数组可以转化成树,树也可以转化为数组
图解
顺序存储特点
1、顺序存储通常考虑完全二叉树
2、第n个元素的左子节点为2n+1
3、第n个元素的右子节点为2n+2
4、第n个元素的父节点为(n-1)/2
需求
给定一个数组{1,2,3,4,5,6,7},要求以二叉树前序遍历
结果:1,2,4,5,3,6,7
代码
public class ArrBinaryTreeDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7};
ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr);
arrBinaryTree.preOrder(0);
}
}
class ArrBinaryTree {
private int[] arr;
public ArrBinaryTree(int[] arr) {
this.arr = arr;
}
// 前序遍历
public void preOrder(int index) {
if (arr == null || arr.length == 0) {
System.out.println("数组为空");
}
System.out.println(arr[index]);
// 左递归
if ((index * 2 + 1) < arr.length) {
preOrder(2 * index + 1);
}
// 右递归
if ((index * 2 + 2) < arr.length) {
preOrder(2 * index + 2);
}
}
}