* 顺序二叉树通常只考虑完全二叉树
* 第n个元素的左子节点为2*n+1
* 第n个元素的右子节点为2*n+2
* 第n个元素的父节点为(n-1)/2
package tree; public class 顺序存储二叉树 { public static void main(String[] args) { int [] arr= {1,2,3,4,5,6,7}; ArrayTree array=new ArrayTree(arr); array.qianxu(0); } } /* * 顺序二叉树通常只考虑完全二叉树 * 第n个元素的左子节点为2*n+1 * 第n个元素的右子节点为2*n+2 * 第n个元素的父节点为(n-1)/2 */ class ArrayTree{ private int[]arr; public ArrayTree(int [] arr) { this.arr=arr; } //前序遍历 public void qianxu(int index) { //index 数组的下标 //如果数组为空,或者arr.lenth=0 if(arr == null || arr.length==0) { System.out.println("空"); return; } System.out.println(arr[index]);//输出当前这个元素 //向左递归前序遍历 if(2*index+1 < arr.length) { qianxu(2*index+1); } //向右递归前序遍历 if(2*index+2 < arr.length) { qianxu(2*index+2); } } }
好
还可以