|
发表于 2022-9-3 15:40:28
|
显示全部楼层
本帖最后由 jhq999 于 2022-9-3 16:03 编辑
转一条:
- 1. 首先看下完全二叉树的定义:
- 一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。
- 2.一条规则:
- 对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。
- 推导过程:
- n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数。
- 则分支数=2n2+n1 (每个n2节点有2个分支,每个n1结点有1个分支)
- 另外又有:分支数=n0+n1+n2-1 (每个结点上面对应一个分支,除了根节点上面没有分支)
- 2n2+n1=n0+n1+n2-1 得 n0=n2+1
- 3.假设n为完全二叉树的结点总数,则有:n=n0+n1+n2
- 结合2的结论有:n0=(n-n1+1)/2
- 4.由于n1=1或者0,则
- 当n1=0时(即度为1的节点为0个时,此时n为奇数)或者n为奇数时
- n0= (n+1)/2;
- 当n1=1时(即度为1的节点为1个时,此时n为偶数)或者n为偶数
- n0= n/2;
复制代码
所以最大是2*n0=248 |
|