就一层一层,从左到右的添加到数组,但是遍历的时候还能实现原来二叉树的前序,中序,后序的遍历
这就要求有一个数组下标和二叉树左右节点的对应关系。
2n+1 n是下标, 结果是下标位置元素的左子节点。 都是操作数组的下标
父节点是 (n-1)/2
package a;
public class ArrayTreeDemo {
public static void main(String[] args) {
int arr[] = new int[7];
for (int i = 0; i < arr.length; i++) {
arr[i] = i+1;
}
ArrayTree arrayTree = new ArrayTree(arr);
arrayTree.pre(0);
}
}
class ArrayTree{
int [] arr;
public ArrayTree(int[] arr) {
this.arr = arr;
}
public void pre(int n) {
if (arr == null || arr.length == 0) {
System.out.println("is null");
}else {
System.out.println(arr[n]);
if ((2 * n + 1) < arr.length) {
pre(2*n+1);
}
if ((2 * n + 2) < arr.length) {
pre(2 * n + 2);
}
}
}
}