编写一个ArrayBinaryTree,实现顺序存储二叉树遍历!
class ArrayBinaryTree{
private int[] arr;//此处为创建存储数据节点的数组
public ArrayBinaryTree(int[] arr){
this.arr=arr;
}
//重载preOrder
public void preOrder(){
this.preOrder(0);
}
编写方法完成顺序存储二叉树的前序遍历
index是数组的下标
如果数组为空或者arr.length=0则输出数组为空。
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(index*2+2);
}
}
编写方法完成顺序存储二叉树的中序遍历
public void infixOrder(int index){
//如果数组为空或者arr.length=0
if (arr==null||arr.length==0){
System.out.println("数组为空");
}
//向左递归遍历
if (index*2+1< arr.length){
preOrder(2*index+1);
}
//输出当前元素
System.out.println(arr[index]);
//向右递归
if (index*2+2< arr.length){
preOrder(index*2+2);
}
}
编写方法完成顺序存储二叉树的后序遍历
public void postOrder(int index){
//如果数组为空或者arr.length=0
if (arr==null||arr.length==0){
System.out.println("数组为空");
}
//向左递归遍历
if (index*2+1< arr.length){
preOrder(2*index+1);
}
//向右递归
if (index*2+2< arr.length){
preOrder(index*2+2);
}
//输出当前元素
System.out.println(arr[index]);
}
}