特点:
1.顺序二叉树只考虑完全二叉树
2.第n个元素的左子节点为2*n+1
3.第n个元素的右子节点为2*n+2
4.第n个元素的父节点为(n-1)/2
代码:
/*
* 给你一个数组,要求以二叉树前序遍历的方式进行遍历
* */
public class ArrayBinaryTreeDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4 , 5, 6, 7};
ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr);
arrBinaryTree.preOrder(0);
}
}
//顺序二叉树
class ArrBinaryTree{
private int[] arr; //存储数据节点的数组
public ArrBinaryTree(int[] arr){
this.arr = arr;
}
//重载
public void preOrder(){
this.preOrder(0);
}
//完成前序遍历
/* index 为数组下标
* */
public void preOrder(int index){
//如果数组为空,或者arr.length = 0;
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);
}
}
}