顺序存储二叉树 是把一个有序的数组以二叉树的方式遍历出来
class ArrBinanryTree
/,1,先要有个属性去获取需要遍历的数组
private int[] arr;
public ArrBinanryTree(int[] arr) {
super();
this.arr = arr;
}
public void preOrder() {
this.preOrder(0);
}
//2,先要判断有没有传入一个数组 而且判断这个数组是否为空
public void preOrder(int index) {
if(arr==null||arr.length==0) {
System.out.println("数组为空");
//3,前序遍历->中左右 所以先输出当前数组
System.out.println(arr[index]);
//4,每个节点都是有两个子节点所以会以双倍的方式去增多所以进入下一个子节点需要左节点是2*index+1,有节点是2*index+2 前中后序遍历都是一个原理
if(2*index+1<arr.length) {
preOrder(2*index+1);
}
if(2*index+2<arr.length) {
preOrder(2*index+2);
}
}
public void infixOrder(int index) {
if(arr==null||arr.length==0) {
System.out.println("数组为空");
}
if(2*index+1<arr.length) {
infixOrder(2*index+1);
}
System.out.println(arr[index]);
if(2*index+2<arr.length) {
infixOrder(2*index+2);
}
}
public void postOrder(int index) {
if(arr==null||arr.length==0) {
System.out.println("数组为空");
}
if(2*index+1<arr.length) {
postOrder(2*index+1);
}
if(2*index+2<arr.length) {
postOrder(2*index+2);
}
System.out.println(arr[index]);
}
}