二叉树的定义
二叉树(Binary Tree)是另一种树形结构,它的特点是每个结点至多有两棵子树(即二叉树中不存在度>2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。
二叉树的5种基本形态
- 空二叉树
- 仅有根结点的二叉树
- 右子树为空的二叉树
- 左、右子树均非空的二叉树
- 左子树为空的二叉树
二叉树的重要性质
性质1: 在二叉树的第i层上至多有2i-1个结点(i≥1)。
性质2: 深度为k的二叉树至多有2k-1个结点(k≥1)。
性质3: 对于任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2则n0=n2+1。
完全二叉树和满二叉树是两种特殊形态的二叉树。
一棵深度为k且有2k-1个结点的二叉树称为满二叉树。
深度为k,有n个结点的二叉树,当且仅当其每一个结点都与深度k的满二叉树中的编号从1至n的结点一 一对应时,称之为完全二叉树。
完全二叉树的特点
- 叶子结点只可能在层次最大的两层上出现。
- 对任一结点,若其右分支下的子孙的最大层次为L则其左分支下的子孙的最大层次必为L或L+1。
完全二叉树的两个重要性质
性质4:具有n个结点的完全二叉树深度为log2+1。
性质5:如果对一棵有n个结点的完全二叉树(深度为log2+1)的结点按层序编号(从第1层到第log2+1层,每层从左到右),则对任一结点i(1≤i≤n),有
- 如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲PARENT(i)是结点i/2。
- 如果2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子LCHILD(i)是结点2i。
- 如果2i+1>n,则结点i无右孩子;否则其右孩子RCHILD(i)是结点2i。