顺序存储二叉树

1年前 (2020-03-08) 405次浏览 已收录 7个评论

* 顺序二叉树通常只考虑完全二叉树
* 第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);
  }
 }
}

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:顺序存储二叉树
喜欢 (0)

您必须 登录 才能发表评论!

(7)个小伙伴在吐槽
  1. 2020-03-27 12:46
  2. 我也是小白以后多多交流
    2020-03-27 13:37
  3. 还可以
    2020-03-27 14:03
  4. 可以
    2020-03-28 16:26
  5. 最好再详细点
    2020-05-26 09:28
  6. 可以
    2020-05-26 09:54
  7. 以后多多交流
    2020-05-26 10:45