一、基本介绍
![](https://i-blog.csdnimg.cn/blog_migrate/359d31ad01fcd4ea2e61a5cd695d1cc9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/79ce2dfac29e739e2c6a019658057ad3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6379c326e79fc52cc11f132aa3c5f439.png)
二、应用实例
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] + " ");
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/a4b925a9643c448f51213a03fb73f671.png)