二叉树(BinaryTree)和堆(Heap)的知识点整理

一、二叉树

二叉树(Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构。在这里插入图片描述
二叉树又分为满二叉树,完全二叉树,平衡二叉树。

1、满二叉树

一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是 满二叉树。假设二叉树的层数为k

  • 满二叉树的结点总和:2k - 1
  • 每一层最多的结点个数:2k-1
    在这里插入图片描述

2、完全二叉树

在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。假设二叉树的层数为k

  • 完全二叉树最底层的结点个数范围为:1 ~ 2k-1-1
    在这里插入图片描述

3、二叉查找树

二叉查找树有数值,且是一个有序树。

  1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  3. 它的左、右子树也分别为二叉排序树
    在这里插入图片描述

4、平衡二叉树

平衡二叉查找树(AVL树):简称平衡二叉树。性质如下:

  1. 可以是一棵空树
  2. 如果不是空树,它的左右两个子树的高度差的绝对值不超过 1,并且左右两个子树都是一棵平衡二叉树。
    在这里插入图片描述

5、参考文献

  1. 二叉树理论基础篇,二叉树的种类、存储、遍历、程序定义。
  2. ,讲解了二叉树的分类、存储、遍历。
  3. 什么是平衡二叉树(AVL),讲解了为什么要有二叉平衡树,AVL树插入时的失衡与调整,AVL树的四种插入节点方式,AVL树的四种删除节点方式。

二、堆

堆中的每一个节点值都大于等于(或小于等于)子树中所有节点的值。或者说,任意一个节点的值都大于等于(或小于等于)所有子节点的值。
在这里插入图片描述

1、参考文献

  1. ,讲解了堆的定义、用途、分类、存储、操作、排序。

三、注意点

1、平衡二叉搜索树(AVL树)是不是二叉搜索树平衡二叉树的结合?
是的,是二叉搜索树和平衡二叉树的结合。

2、平衡二叉树完全二叉树的区别在于底层节点的位置?
是的,完全二叉树底层必须是从左到右连续的,且次底层是满的。
且平衡二叉树有序,存在数值,完全二叉树可以没有数值。

3、完全二叉树和排序的结合,而不是平衡二叉搜索树
堆近似的可以看作完全二叉树,同时保证父子节点的顺序关系(有序)。
堆的排序是父节点大于子节点,而搜索树是父节点大于左孩子,小于右孩子,所以堆不是平衡二叉搜索树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值