满二叉树、完全二叉树:它们在顺序存储方式下可以复原。
满二叉树:一颗深度为 k 且有 2^k - 1 个结点的二叉树称为满二叉树。
特点:① 每一层上的结点数都是最大结点数(即每层都满)
② 叶子结点全部都在最底层
对满二叉树结点位置进行编号
编号规则:从根结点开始,自上而下、自左而右。
每一结点位置都有元素。
如果是满二叉树,结点数量应该是 2^4 - 1 = 15,显然这棵树不是满二叉树
不是满二叉树,叶子不在同一层上。且最后一层结点个数不满!
满二叉树在同样深度的二叉树中结点个数最多
满二叉树在同样深度的二叉树中叶子结点个数最多
完全二叉树:深度为 k 的具有 n 个结点的二叉树,当且仅当其每一个结点都与深度为 k 的 满二叉树 中
编号为 1~n 的结点 一一对应时,称之为完全二叉树。
左下是,左上是,其余不是。
注意:在满二叉树中,从最后一个结点开始,连续去掉任意个结点,即是一颗完全二叉树。一定是连续的去掉。
特点:
① 叶子只可能分布在层次最大的两层上
② 对任一结点,如果其右子树的最大层次为 i,则其左子树的最大层次必为 i 或 i+1
满二叉树一定是完全二叉树,完全二叉树未必是满二叉树。