二叉树的性质
性质1:
在二叉树第i层上至多有2i-1 个结点(i≥1)。
方法1证明:
归纳法
当i=1时,二叉树的第1层只有一个根结点。2i-1=21-1=20=1成立。
假设该命题对所有j(1<j<i)成立,即第j层上至多有2j-1个结点,那么第 i-1层至多有2i-2个结点。因为二叉树每个结点的度不超过2,因此,第i层 的结点个数最多是第i-1层结点个数的2倍,即最多不超过2*2i-2=2i-1。
命题得证。
方法2证明:
差比数列
就是一个差比数列求和,不会就百度;
性质2:
深度为k(k≥1)的二叉树至多有2k -1个结点。
证明:
由性质1可知,深度为k(k≥1)的二叉树的最大结点个数为每层的最大结 点个数之和,即
命题得证。
性质3:
对任何一颗二叉树T,如果其终端结点数为n0 ,度为2的结点数为n2 , 则n0 = n2 +1。
证明:假设n1为二叉树T中度为1的结点数,因为二叉树中所有结点的度均小于或等于2,所以,二叉树的结点总数
n=n0+n1+n2 (公式4.1)
又知二叉树中,除根结点外,其余结点都只有一个分支进入。设B为分支总数,则二叉树的结点总数
n=B+1 (公式4.2)
又知所有分支均由度为1和度为2的结点射出,因此分支总数
B=n1+2n2 (公式4.3)
由公式4.2和公式4.3可以得到
n= n1+2n2+1 (公式4.4)
由公式4.1和公式4.4可以得到 n0=n2+1
性质4:
具有n个结点的完全二叉树的深度为 ëlog2nû+1 。
证明:
由完全二叉树的定义可知,假设具有n个结点的完全二叉树的深度为k(k ≥1),则从第1层都第k-1层都是满的,第k层结点个数为1<n≤2k-1,则 根据性质2和完全二叉树的定义,有2k-1-1<n≤2k-1,则有
2k-1<n+1≤2k 或 2k-1≤n<2k
得到
k-1≤log2n<k 或 log2n<k≤log2n+1
因为k为整数,所以k= ëlog2nû+1。
性质5:
如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1 ≤i≤n),有:
(1) 如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是ëi/2û ;
(2) 如果2i>n,则结点i无左孩子;如果2i≤n,则其左孩子是2i;
(3) 如果2i+1>n,则结点i无右孩子;如果2i+1≤n,则其右孩子是2i+1。
证明:
当i=1时,由完全二叉树的定义知其左孩子是结点2。若2>n,即不存在结点2,此时结点i无左孩子。结点i的右孩子也只能是结点3,若结点3不存在,即3>n,此时结点i无右孩子。结论成立。
当i=k(1<k<ëlog2nû)时,第k层的第一个结点的编号为i(由二叉树的定义和性质2可知i=2k-1),则其左孩子必为第i+1层的第一个结点,其编号为2k=2*2k-1=2i,若2i>n,则编号为2i的结点不存在,即结点i无左孩子;其右孩子必为第i+1层的第二个结点,其编号为2k +1=2i +1。若2i +1>n,则编号为2i +1的结点不存在,即结点i无右孩子。
又若2i +1<n,则其左孩子为2i,右孩子为2i +1。结论成立。