package com.hao.firstdemo.datastruct.tree;
/**
* @author haoxiansheng
* @data 2020/5/2
*/
public class ArrayBinaryTreeTest {
public static void main(String[] args) {
int [] arr = {1, 2, 3 , 4, 5, 6, 7};
ArrayBinaryTree arrayBinaryTree = new ArrayBinaryTree(arr);
arrayBinaryTree.preOrder(); //下标从0开始
}
}
//编写 ArrayBinaryTree, 实现顺序存储的二叉树遍历
class ArrayBinaryTree{
private int [] arr; //存储数据节点的数组
public ArrayBinaryTree(int[] arr) {
this.arr = arr;
}
//重载
public void preOrder() {
this.preOrder(0);
}
/**
*编写一个方法 完成顺序存储二叉树的前序遍历
* @param index 数组的下标
*/
public void preOrder(int index) {
if (arr == null || arr.length == 0) {
System.out.println("数组为null");
}
System.out.println(arr[index]); //先输出当前元素
//左递归
if ((index * 2 +1) < arr.length) {
preOrder(index * 2 + 1);
}
//右递归
if ((index * 2 + 2) < arr.length) {
preOrder(index * 2 +2);
}
}
}