二叉树
二叉树的性质
-
性质1:在二叉树的第i层上至多有2i-1个结点(i>=1)
- 这个性质十分好记忆
- 第一层是根节点,只有一个所以是21-1 = 20 = 1
- 第二层有两个 22-1 = 21 = 2
- 第三层有四个 23-1= 22 = 4
- 通过归纳法可得知
-
性质2:深度为k的二叉树至多有2k-1个结点(k>=1)
- 注意是2k-1 不是2k-1
- 深度为k意思就是有k层的二叉树
- 如果有一层 k=1 21 -1 = 1
- 如果有二层 k=2 22 -1 = 3
- 如果有三层 k=3 23-1 = 7
-
性质3:对任何一颗二叉树T,如果终端结点树为n0,度为2的结点数为n2
- 则n0 = n2+1
- 终端结点数就是叶子结点数,而一颗二叉树,除了叶子结点外,剩下的就是度为1或2的节点数了,我们设n1为度1的结点数,则树T结点总数 n = n2+n1+n0
- 由此我们可推出树的分支线总数= n-1 = n1+2n2
-
性质4:具有n个结点的完全二叉树的深度k = log2n + 1
- 结点数为n n取x的最大值
- log2n n取x的最大整数
- 而满二叉树的深度为 k = log2n+1
-
性质5:如果对一颗有n个结点的完全二叉树(其深度为log2n + 1)的结点
-
按层序编号(从第一层到第[log2n+1]层,每层从左至右),对任一结点i(1<= i <= n)
有:- 1 如果 i =1, 则结点i是二叉树的根,无双亲,如果 i > 1,则其双亲是结点[ i / 2 ]
- 2 如果2i > n 则结点i无左孩子(结点i为叶子结点) 否则其左孩子是结点2i
- 3 如果2
- 2i+1 > n 则结点i无右孩子,否则其右孩子是结点2i + 1