一、基本介绍
二、应用实例
package tree;
public class SeqStoreBinaryTree {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7};
SeqBinaryTree tree = new SeqBinaryTree(arr);
System.out.print("\n前序遍历:");
tree.preOrderTraverse(0);
System.out.print("\n中序遍历:");
tree.inOrderTraverse(0);
System.out.print("\n后序遍历:");
tree.postOrderTraverse(0);
}
}
class SeqBinaryTree {
private int[] arr;
public SeqBinaryTree(int[] arr) {
this.arr = arr;
}
// 前序遍历
public void preOrderTraverse(int index) {a
if (arr.length == 0 || arr == null) {
return;
}
if (index >= arr.length) { // 递归的结束条件
return;
}
// 输出根结点
System.out.print(arr[index] + " ");
// 遍历左子树
preOrderTraverse(2*index + 1);
// 遍历右子树
preOrderTraverse(2*(index + 1));
}
// 中序遍历
public void inOrderTraverse(int index) {
if (arr.length == 0 || arr == null) {
return;
}
if (index >= arr.length) { // 递归的结束条件
return;
}
// 遍历左子树
inOrderTraverse(2*index + 1);
// 输出根结点
System.out.print(arr[index] + " ");
// 遍历右子树
inOrderTraverse(2*(index + 1));
}
// 后序遍历
public void postOrderTraverse(int index) {
if (arr.length == 0 || arr == null) {
return;
}
if (index >= arr.length) { // 递归的结束条件
return;
}
// 遍历左子树
postOrderTraverse(2*index + 1);
// 遍历右子树
postOrderTraverse(2*(index + 1));
// 输出根结点
System.out.print(arr[index] + " ");
}
}