ArrayBinaryTree数组&二叉树

 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 }

 

posted @ 2021-03-01 20:08  TRAODM  阅读(79)  评论(0)    收藏  举报