树中结点,高度及度的计算

计算 m m m叉树的最小高度

层数结点数
第一层 1 1 1
第二层 m 1 m^1 m1
第三层 m 2 m^2 m2
⋮ \vdots ⋮ \vdots
h h h m h − 1 m^{h-1} mh1

m m m叉树应满足:每层都应为满结点。设结点数为 n n n,则 n ≤ 1 + m 1 + m 2 + ⋯ + m h − 1 n\le 1+m^1+m^2+\cdots+m^{h-1} n1+m1+m2++mh1。利用数列前 n n n项和公式:
等差数列前 n 项和 : S n = n ( a 1 + a n ) 2 = n a 1 + n ( n + 1 ) 2 d 等比数列前 n 项和 : S n = a 1 ( 1 − q n ) 1 − q \begin{equation*} \begin{aligned} &等差数列前n项和:S_n=\frac{n(a_1+a_n)}{2}=na_1+\frac{n(n+1)}{2}d\\ \\ &等比数列前n项和:S_n=\frac{a_1(1-q^n)}{1-q} \end{aligned} \end{equation*} 等差数列前n项和:Sn=2n(a1+an)=na1+2n(n+1)d等比数列前n项和:Sn=1qa1(1qn)
n ≤ 1 ⋅ ( 1 − m h ) 1 − m ⟹ n m − n + 1 ≤ m h − 1 n\le\frac{1·(1-m^{h})}{1-m}\Longrightarrow nm-n+1\le m^{h-1} n1m1(1mh)nmn+1mh1两边取对数得:
h = ⌈ log ⁡ m ( n m − n + 1 ) ⌉ h=\lceil\log_m(nm-n+1)\rceil h=logm(nmn+1)⌉

树易混淆概念

注意区分以下概念:

  1. 树的高度:是从下往上数

    树结点的高度
  2. 树的深度:从上往下数

    树结点的层次
  3. 树的度:各结点的度的最大值

    树结点的高度

    如上面树的度 = 3 =3 =3,是结点D

度的计算

树中结点数等于所有结点的度数之和加上 1 1 1(根节点)

度为 m m m的树中第 i i i层至多有 m i − 1 m^{i-1} mi1个结点,即满 m m m叉树的情况。

例 1 : \Large 例1: 1:已知一棵树度为 4 4 4的树中,度为 0 , 1 , 2 , 3 0,1,2,3 0,1,2,3的结点数分别为 14 , 4 , 3 , 2 14,4,3,2 14,4,3,2,求该树的结点总数 n n n和度为 4 4 4的结点个数,并给出推导过程。
解 : 设 n i 表示度为 i 的结点 , 则总结点数 n : ① n = n 0 + n 1 + n 2 + n 3 + n 4 = 23 + n 4 且树种结点数等于所有结点度数之和 + 1 ② n = n 0 ⋅ 0 + n 1 ⋅ 1 + n 2 ⋅ 2 + n 3 ⋅ 3 + n 4 ⋅ 4 = 0 ⋅ 14 + 1 ⋅ 4 + 2 ⋅ 3 + 3 ⋅ 2 + 4 ⋅ n 4 + 1 = 17 + 4 n 4 故 17 + 4 n 4 = 23 + n 4 , 得 n 4 = 2 , n = 25 ∴ 该树总结点数为 25 , n 4 为 2 \begin{equation*} \begin{aligned} \\\Large{解:}\\ &设n_i表示度为i的结点,则总结点数n:\\ \\ &①n=n_0+n_1+n_2+n_3+n_4=23+n_4\\ \\ &且树种结点数等于所有结点度数之和+1\\ \\ &②n=n_0·0+n_1·1+n_2·2+n_3·3+n_4·4\\ \\ &=0·14+1·4+2·3+3·2+4·n_4+1\\ \\ &=17+4n_4\\ \\ &故17+4n_4=23+n_4,得n_4=2,n=25\\ \\ &\therefore 该树总结点数为25,n_4为2 \end{aligned} \end{equation*} :ni表示度为i的结点,则总结点数n:n=n0+n1+n2+n3+n4=23+n4且树种结点数等于所有结点度数之和+1n=n00+n11+n22+n33+n44=014+14+23+32+4n4+1=17+4n417+4n4=23+n4,n4=2,n=25该树总结点数为25,n42
例 2 : \Large 例2: 2:已知一棵度为 m m m的树中,有 n 1 n_1 n1个度为 1 1 1的结点,有 n 2 n_2 n2个度为 2 2 2的结点 ⋯ \cdots n m n_m nm个度为 m m m的结点,问该树有多少个叶结点。
解 : 树中结点数等于所有结点的度数之和加上 1 : 即 n = n 1 + 2 n 2 + ⋯ + m n m + 1 = ∑ i = 1 m i n i + 1 且总结点数 n = n 0 + n 1 + ⋯ + n m , 即 n 0 = ∑ i = 1 m i n i − ( n 1 + n 2 + ⋯ + n m ) + 1 = ∑ i = 1 m i n i − ∑ i = 1 m n i + 1 = 1 + ∑ i = 1 m n i ( i − 1 ) \begin{equation*} \begin{aligned} \\\Large{解:}\\ &树中结点数等于所有结点的度数之和加上1:\\ \\ &即n=n_1+2n_2+\cdots+mn_m+1=\sum_{i=1}^{m}in_i+1\\ \\ &且总结点数n=n_0+n_1+\cdots+n_m,即\\ \\ &n_0=\sum_{i=1}^{m}in_i-(n_1+n_2+\cdots+n_m)+1\\ \\ &=\sum_{i=1}^{m}in_i-\sum_{i=1}^{m}n_i+1=1+\sum_{i=1}^{m}n_i(i-1) \end{aligned} \end{equation*} :树中结点数等于所有结点的度数之和加上1:n=n1+2n2++mnm+1=i=1mini+1且总结点数n=n0+n1++nm,n0=i=1mini(n1+n2++nm)+1=i=1minii=1mni+1=1+i=1mni(i1)

二叉树易混淆知识点

满二叉树:一棵高度为 h h h,且含有 2 h − 1 2^{h}-1 2h1个结点的二叉树称为满二叉树,即树中每层含有最多的结点。

完全二叉树:当且仅当其每个结点都与高度为 h h h满二叉树中编号为 1 ∼ n 1\sim n 1n的结点一一对应时,称为完全二叉树。

完全二叉树与满二叉树

完全二叉树特点:

  1. 只有最后两层可能有叶子结点;
  2. 且最多只有一个度为 1 1 1的结点。
  3. 按层序从 1 1 1开始编号,结点 i i i的左孩子为 2 i 2i 2i,右孩子为 2 i + 1 2i+1 2i+1;结点 i i i的父结点为 [ i / 2 ] [i/2] [i/2]
  4. i ≤ [ n / 2 ] i\le[n/2] i[n/2]为分支结点, i > [ n / 2 ] i>[n/2] i>[n/2]为叶子结点,即若 n n n为奇数,则每个分支结点都有左右孩子;若为偶数,则编号最大的分支结点( n 2 \frac{n}{2} 2n)只有左孩子,没有右孩子,其余分支结点左、右孩子都有。
  5. 一个结点如果有孩子,一定是左孩子。
  6. 结点 i i i所在层次(深度),为 ⌊ log ⁡ 2 i ⌋ + 1 \lfloor\log_2i\rfloor+1 log2i+1

注意:满二叉树是完全二叉树,而完全二叉树不一定是满二叉树。

二叉树性质及计算

(1)非空二叉树上的叶结点数等于度为 2 2 2的结点数加 1 1 1,即 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
证明 : 假设树中结点总数为 n , n i 表示度为 i 结点数 , 则 : ① n = n 0 + n 1 + n 2 ② n = n 1 + 2 n 2 + 1 ( 树的结点数 = 总度数 + 1 ) 此时② − ① ⟹ n 0 = n 2 + 1 , 即叶子结点比二分支结点多一个。 \begin{equation*} \begin{aligned} \\\Large{证明:}\\ &假设树中结点总数为n,n_i表示度为i结点数,则:\\ \\ &①n=n_0+n_1+n_2\\ \\ &②n=n_1+2n_2+1(树的结点数=总度数+1)\\ \\ &此时②-①\Longrightarrow n_0=n_2+1,即叶子结点比二分支结点多一个。 \end{aligned} \end{equation*} 证明:假设树中结点总数为n,ni表示度为i结点数,:n=n0+n1+n2n=n1+2n2+1(树的结点数=总度数+1)此时n0=n2+1,即叶子结点比二分支结点多一个。
(2)具有 n n n ( n > 0 ) (n>0) (n>0)结点的完全二叉树的高度为 ⌈ log ⁡ 2 ( n + 1 ) ⌉ \lceil\log_2(n+1)\rceil log2(n+1)⌉ ⌊ log ⁡ 2 n ⌋ + 1 \lfloor\log_2n\rfloor+1 log2n+1

层数结点数
第一层 1 1 1
第二层 2 1 2^1 21
第三层 2 2 2^2 22
⋮ \vdots ⋮ \vdots
h h h 2 h − 1 2^{h-1} 2h1

令高度为 h h h,故结点总数 n ≤ 1 ⋅ ( 1 − 2 h ) 1 − 2 = 2 h − 1 ⟹ log ⁡ 2 ( n + 1 ) ≤ h n\le \frac{1·(1-2^{h})}{1-2}=2^h-1\Longrightarrow \log_2(n+1)\le h n121(12h)=2h1log2(n+1)h ⌈ log ⁡ 2 ( n + 1 ) ⌉ \lceil\log_2(n+1)\rceil log2(n+1)⌉.

例 : \Large 例: :一棵有 124 124 124个叶结点的完全二叉树,最多有多少个结点
解 : 若总结点数为 n , n i 表示度为 i 结点数 , 叶结点 n 0 = 124 由于 n 0 = n 2 + 1 ⟹ n 2 = 123 故 n = n 0 + n 1 + n 2 = 247 , 由完全二叉树特性 : i ≤ n 2 为分支结点 , i > n 2 为叶结点 , n 1 结果为 0 或 1 且 247 2 = 123 ⋯ 1 , 由于 n 0 = 124 , ∴ n 1 = 1 综上 , n = 248 \begin{equation*} \begin{aligned} \\\Large{解:}\\ &若总结点数为n,n_i表示度为i结点数,叶结点n_0=124\\ \\ &由于n_0=n_2+1\Longrightarrow n_2=123\\ \\ &故n=n_0+n_1+n_2=247,由完全二叉树特性:\\ \\ &i\le\frac{n}{2}为分支结点,i>\frac{n}{2}为叶结点,n_1结果为0或1\\ \\ &且\frac{247}{2}=123\cdots1,由于n_0=124,\therefore n_1=1\\ \\ &综上,n=248 \end{aligned} \end{equation*} :若总结点数为n,ni表示度为i结点数,叶结点n0=124由于n0=n2+1n2=123n=n0+n1+n2=247,由完全二叉树特性:i2n为分支结点,i>2n为叶结点,n1结果为012247=1231,由于n0=124,n1=1综上,n=248

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值