第六章 二叉树的性质

性质一

在二叉树中的第i层上至多有 2(i1) 个结点。
第一层是根结点,只有一个,所以 2(11)=20=1
第二层有两个, 2(21)=21=2

通过数学归纳法,在二叉树的第i层上至多有 2i1 个结点。

性质二

深度为k的二叉树至多有 2k1 个结点,注意是 2k 之后再减一,而不是 2k1
如果只有一层,则有 211=1 个结点,
如果两层,则有 221=3 个结点,
如果两层,则有 231=7 个结点,

因此如果有k层,则总共有 2k1 个结点。

性质三

对任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1

证明:终端结点数其实就是叶子结点数,一棵二叉树,除了叶子结点外,剩下的就是度为1或者2的结点数了,假设度为1的结点数为n1,则树T的总结点数n=n0+n1+n2
再从边来考虑,二叉树的边数为n-1,而总边数同样等于n1+2*n2,因此n-1=n0+n1+n2=n1+2*n2,解得n0=n2+1

性质四

具有n个结点的完全二叉树的深度为 log2n x 表示不大于x的最大整数)。

证明:由满二叉树的定义可知,深度为k的满二叉树的结点数n一定是 2k1 ,因为这是最多的结点个数,那么对于 n=2k1 倒推得到满二叉树的度数为 k=log2(n+1) ,比如结点数为15的满二叉树,度为4。

完全二叉树是一棵具有n个结点的二叉树,其叶子结点只会出现在最下面两层。其结点数一定少于等于同样度数的满二叉树结点数 2k1 ,但一定多于 2k11 。即满足 2k11<n2k1 。由于结点数n是整数, n2k1 意味着 n<2k n2k1 ,所以 2k1n<2n ,两边同时取对数,得到 k1log2n<k ,而k作为度数也是整数,因此 k=log2n+1

性质五

如果对一棵有n个结点的完全二叉树(其深度为 log2n )的结点按层序编号(从第一层到第 log2n +1层,每层从左到右),对任一结点i( 1in )有:
1. 如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则双亲是结点 i/2
2. 如果2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子就是结点2i
3. 如果2i+1>n,则结点i无右孩子;否则其右孩子是2i+1。
例:如下图是一个完全二叉树,度为4,总结点数为10
第六章 二叉树的性质_第1张图片

对于第一条是显然的,i=1时就是根结点。i>1时,比如结点7,它的双亲 7/2 ,结点9,它的双亲就是 9/2=4

第二条,比如结点6,因为2×6=12大于结点总数10,所以结点6无左孩子,它是叶子结点。而结点5,因为2×5=10刚好等于结点总数10,所以它的左孩子是结点10。

第三条,比如结点5,因为2×5+1=11,大于结点总数10,所以它无右孩子。而结点3,因为2×3+1=7小于10,所以它的右孩子是结点7。

你可能感兴趣的:(大话数据结构读书笔记)