1 package demo030101;
2
3 public class ArrayBinaryTree {
4 int[] data;
5 //传入一个数组,并看成是二叉树
6 public ArrayBinaryTree(int[] data){
7 this.data=data;
8 }
9
10 //方法重载
11 public void frontShow(){
12 frontShow(0);
13 }
14
15 //顺序存储结构的二叉树,可以设置遍历起点
16 public void frontShow(int start){
17 if (data == null || data.length == 0){
18 return;
19 }
20 //先遍历当前节点data
21 System.out.print(data[start]+" ");
22 //2*start+1:处理左儿子,调用递归
23 if (2*start+1<data.length){
24 frontShow(2*start+1);
25 }
26 //2*start+2:处理右儿子,调用递归
27 if (2*start+2<data.length){
28 frontShow(2*start+2);
29 }
30 // System.out.println();
31 }
32 }
1 package demo030101;
2
3 public class ArrayBinaryTreeDemo {
4 public static void main(String[] args) {
5 int[] data = new int[]{1,5,6,9,4,8,3,7,2};
6 ArrayBinaryTree abTree = new ArrayBinaryTree(data);
7 abTree.frontShow();
8 }
9 }