二叉树的基本性质
目前,二叉树的基本性质在当代的应用可谓是越来越广泛,二叉树的基本性质是值得我们好好学习的,现在我们就深入了解二叉树的基本性质。
二叉树的性质
(1) 在二叉树的第k层上,最多有2k-1(k≥1)个结点;
解释:最多的时候是满二叉树,它的第1层有21-1=1个结点;第2层有22-1=2个结点;第3层23-1=4个结点;第4层有24-1=8个结点;……
(2) 深度为m的二叉树最多有2m-1个结点,最少有m个结点;
(3)对于任意一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个;即如果其叶子结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
(4) 具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]+1表示取log2n的整数部分;
(5)给定N个节点,能构成h(N)种不同的二叉树;h(N)为卡特兰数的第N项。h(n)=C(n,2*n)/(n+1)。
(6) 具有n个结点的完全二叉树的深度为[log2n]+1;
(7) 设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下结论:
①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);
②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);
③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
性质1 在二叉树的第i层上至多有2i-1个结点(i>=1)。
证明 采用归纳法证明此性质。
当i=1时,只有一个根结点,2i-1=20 =1,命题成立。
现在假定对所有的j,1<=j<i,命题成立,即第j层上至多有2j-2个结点,
那么可以证明j=i时命题也成立。由归纳假设可知,第i-1层上至多有2i-2个结点。
由于二叉树每个结点的度最大为2,故在第i层上最大结点数为第i-1
层上最大结点数的二倍, 即2×(2i-2)=2i-1。
性质2 深度为k的二叉树至多有2k-1个结点(k>=1)。
证明 第i层的结点数为xi(1≤i≤k),深度为k的二叉树的结点数为M,xi最多为2i-1,则有:
性质3 对于一棵非空的二叉树,如果叶子结点数为n0,度数为2的结点数为n2,则有n0=n2+1。
证明 设二叉树中度为1的结点数为n1,二叉树中总结点数为N,因为二叉树中所有结点均小于或等于2,所以有:
N=n0+n1+n2 (5-1)
再看二叉树中的分支数,除根结点外,其余结点都有一个进入分支,设B为二叉树中的分支总数,则有:
N=B+1。
由于这些分支都是由度为1和2的结点发出的,所以有:
B=n1+2*n2
N=B+1=n1+2×n2+1 (5-2)
由式(5-1)和(5-2)得到:
n0+n1+n2 = n1+2×n2+1
n0=n2+1
性质4 具有n个结点的完全二叉树的深度k为 。
证明 设所求完全二叉树的深度为k,根据完全二叉树的定义和性质2可知,k-1层满二叉树的结点个数为n时,有
2k-1-1<n≤2k-1
即2k-1≤n<2k
对不等式取对数,有
k-1≤log2n<k
由于k是整数,所以有k-1=,k=,结论成立。
性质5 如果对一棵有n个结点的完全二叉树的结点按层序编号(从第1层到第 +1层,每层从左到右),则对任一结点i(1<=i<=n),有:
(1)如果i=1,则结点i无双亲,是二叉树的根;如果i>1,则其双亲是结点。
(2)如果2i>n,则结点i为叶子结点,无左孩子;否则,其左孩子是结点2i。
(3)如果2i+1>n,则结点i无右孩子;否则,其右孩子是结点2i+1。
此外,若对二叉树的根结点从0开始编号,则相应的i号结点的双亲结点的编号为(i-1)/2,左孩子的编号为2i+1,右孩子的编号为2i+2。
二叉树的性质
此性质可采用数学归纳法证明。证明略。
这个性质是一般二叉树顺序存储的重要基础。
下面介绍两种特殊形态的二叉树:满二叉树和完全二叉树。
一棵深度为k且由2k-1个结点的二叉树称为满二叉树。图5-3(a)就是一棵满二叉树,对结点进行了顺序编号。图5-3(b)图则不是满二叉树,因为,虽然其所有结点要么是含有左右子树的分支结点,要么是叶子结点,但由于其叶子未在同一层上,故不是满二叉树。
综上所述,本文已为讲解二叉树的性质,相信大家对二叉树的性质的认识越来越深入,希望本文能对各位读者有比较大的参考价值。
浏览过本文<二叉树的性质>文的人也浏览了
二叉树算法
http://baike.cntronics.com/abc/2045
二叉树排序
http://baike.cntronics.com/abc/2048
二叉树的深度
http://baike.cntronics.com/abc/2047