1. 概念
1.以数组的形式保存的二叉树相关的方法,如遍历仍然通过二叉树的方式2.顺序二叉树和数组之间可以相互转换条件:二叉树为完全二叉树转换规则:数组下标:0开始,从左往右节点编号:1开始,从上往下,从左往右关系:【数组下标index】与节点相对位置的关系数组中index为n的某个元素:左子节点index = 2n + 1右子节点index = 2n + 2父节点index = (n-1) / 2
2. 定义顺序存储二叉树
@Dataclass ArrayBinaryTree {// 元数组private int[] arr;// 前置遍历 TODOpublic void preOrder(int index) {}// 前置遍历 TODOpublic void infixOrder(int index) {}// 后置遍历public void postOrder(int index) {}}
3. 遍历
这里只展开前置遍历
前置遍历实现
// 前置遍历,从0开始public void preOrder(int index) {System.out.println(arr[index]);// 判断左节点(左节点index=2*index+1)if (2 * index + 1 < arr.length) {preOrder(2 * index + 1);}// 判断右节点(右节点index=2*index+2)if (2 * index + 2 < arr.length) {preOrder(2 * index + 2);}}
前置遍历测试
/*** 输出结果:* 1 2 4 5 3 6 7*/public static void main(String[] args) {int[] arr = {1,2,3,4,5,6,7};ArrayBinaryTree arrTree = new ArrayBinaryTree(arr);arrTree.preOrder(0);}
