二叉树----顺序二叉树、线索二叉树

二叉树----顺序二叉树、线索二叉树

1、顺序二叉树

1.1、 顺序二叉树的特点

特点
  • 顺序二叉树通常只考虑完全二叉树

  • 第 n个元素的子节点为 2 × n + 1

  • 第 n个元素的子节点为 2 × n + 2

  • 第 n个元素的父节点为(n-1) ÷2

    其中n 表示二叉树中的第几个元素(从0开始编号)

image-20210325203018006

2.2、 顺序二叉树代码实现

注意点:和遍历二叉树类似、不同的地方,是递归的条件变成了2n + 1等,还要注意判断,防止在2n+1的时候,数组越界,所以要加上判断语句

class ArrBinaryTree {
   
   int[] arr;
   final int step = 2;

   public ArrBinaryTree(int[] arr) {
   
      this.arr = arr;
   }

   /**
    * 数组的前序遍历
    */
   public void preTraverse() {
   
      preTraverse(0);
   }

   /**
    * 数组的前序遍历
    * @param index 遍历到的数组元素下标
    */
   private void preTraverse(int index) {
   
      if(arr == null || arr.length == 0) {
   
         System.out.println("数组为空!");
         return;
      }
      System.out.print(arr[index] + " ");
      //向左递归
      if((index * step) + 1 < arr.length) {
   
         preTraverse((index * step) + 1);
      }
      //向右递归
      if((index 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值