二叉树、满二叉树和完全二叉树


二叉树是一种很重要的非线性数据结构,它是树结构的一种重要的类型(它不是树结构的特殊情况),其特征是每个节点最多有两个子树。


二叉树的特点:

    1. 二叉树每个结点最多有2个子结点,树则无此限制;

    2. 二叉树中结点的子树分成左子树和右子树,即使某结点只有一棵子树,也要指明该子树是左子树,还是右子树,就是说二叉树是有序的

    3. 二叉树可以是空的(或者说二叉树可以为空集),而树却决不能是空的(或者说是空集)。



      (二叉树的具体性质就没必要写)
满二叉树:
一棵非空高度为k(k>=0)满二叉树,是有2^(k+1)1个结点的二叉树。
满二叉树而言,除叶结点外,其它结点的度均为2.

满二叉树的特点:
    1. 叶结点都在第k层上;

    2. 每个分支结点都有两个子结点;

    3. 叶结点的个数等于非叶结点个数加1




    完全二叉树:

    一棵有 n 个结点、高为 k 的二叉树 T ,一棵高为 k 满二叉树 T * ,用正整数按层次顺序分别编号 T T * 的所有结点,如果 T 之所有结点恰好对应于 T * 的前 n 个结点,则称 T 完全二叉树 层次顺序:按从上至下,即从第0至第k层,每层由左到右的次序。
    (标准的定义有点晦涩难懂啊!)


    我自己的通俗点的理解是:
           若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
       完全二叉树是由 满二叉树 而引出来的。对于深度为K的,有N个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
       是若一棵二叉树至多只有最下面的两层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树。


    完全二叉树的特点:
      1. 树中只有最下面两层结点的度可以小于2

      2. 树中最下面一层的结点都集中在该层最左边的若干位置上(满二叉树意义上);

      3. 树中叶结点只能在层数最大的两层上出现,即存在一个非负整数k使得树中每个叶结点或在第k层或第k+ 1层上;

      4. 对树中所有结点,按层次顺序,用自然数从1开始编号,仅仅编号最大的非叶结点可以没有右孩子,其余非叶结点都有两个孩子结点。

      5. 树中所有结点对应于高度为K的满二叉树编号由0-n的那些结点。




    总结:满二叉树和 完全二叉树是二叉树的两种特殊情形。
    最后在补充一点,深度固定的完全二叉树的节点个数不唯一。深度为k的完全二叉树的结点最少为2^(k-1),最多为2^k-1,分别对应深度为k-1的满二叉树加一个结点和深度为k的满二叉树。


    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值