class ArrBinaryTree {
private int[] arr;
public ArrBinaryTree(int[] arr) {
this.arr = arr;
}
//后续重载
public void postOrder(){
this.postOrder(0);
}
//顺序存储二叉树后序遍历
public void postOrder(int index) {
//判断数组的合法性
if (arr == null || arr.length == 0) {
return;
}
//向左递归
if (index * 2 + 1 < arr.length) {
this.postOrder(index * 2 + 1);
}
//向右递归
if (index * 2 + 2 < arr.length) {
this.postOrder(index * 2 + 2);
}
//输出当前节点信息
System.out.println(arr[index]);
}
//中序遍历重载
public void infixOrder(){
this.infixOrder(0);
}
//顺序存储二叉树中序遍历
public void infixOrder(int index) {
//判断数组的合法性
if (arr == null || arr.length == 0) {
return;
}
//向左递归
if (index * 2 + 1 < arr.length) {
this.infixOrder(index * 2 + 1);
}
//输出当前节点信息
System.out.println(arr[index]);
//向右递归
if (index * 2 + 2 < arr.length) {
this.infixOrder(index * 2 + 2);
}
}
//顺序存储二叉树前序遍历
public void preOrder(int index) {
//判断数组的合法性
if (arr == null || arr.length == 0) {
return;
}
//输出当前节点信息
System.out.println(arr[index]);
//向左递归
if (index * 2 + 1 < arr.length) {
this.preOrder(index * 2 + 1);
}
//向右递归
if (index * 2 + 2 < arr.length) {
this.preOrder(index * 2 + 2);
}
}
//因为index默认从0开始,因此可以重载此方法
public void preOrder(){
this.preOrder(0);
}
}
原文:https://www.cnblogs.com/mx-info/p/14855772.html