基本说明:从数组储存来看,数组存储方式和树的存储方式可以转换,即树可以转换成数组,数组也可以转换为树
1.顺序存储二叉树通常只考虑完全二叉树 2.第n个元素的左子节点为2n+1 3.第n个元素的右子节点为2n+2 4.第n个元素的父结点为(n-1)/2 5.n:表示二叉树中的第几个元素
注:不懂前序遍历的小朋友请移步我的另一篇文章:Java-二叉树详解
//编写一个ArrayBinaryTree,实现顺序存储二叉树遍历 class ArrayBinaryTree{ private int[] arr;//存储数据节点的数组 public ArrayBinaryTree(int[] arr) { super(); this.arr = arr; } //编写一个方法,完成顺序存储二叉树的遍历 //index数组的下标 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); } } } public static void main(String[] args) { int[]arr= {1,2,3,4,5,6,7}; //创建一个ArrayBinaryTree ArrayBinaryTree arrBinaryTree=new ArrayBinaryTree(arr); arrBinaryTree.preOrder(0);//1,2,4,5,3,6,7 }