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

计算\(m\)叉树的最小高度

层数 结点数
第一层 \(1\)
第二层 \(m^1\)
第三层 \(m^2\)
\(\vdots\) \(\vdots\)
\(h\) \(m^{h-1}\)

故要求得最小高度每层都应为满结点的\(m\)叉树。设结点数为\(n\),则\(n\le 1+m^1+m^2+\cdots+m^{h-1}\)。利用数列前\(n\)项和公式:

\[\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\le\frac{1·(1-m^{h-1})}{1-m}\Longrightarrow nm-n+1\le m^{h-1}\)两边取对数得:

\[h=\lceil\log_m(n(m-1)+1)\rceil \]

树易混淆概念

注意区分以下概念:

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

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

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

    树结点的高度

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

度的计算

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

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

\(\Large 例1:\)已知一棵树度为\(4\)的树中,度为\(0,1,2,3\)的结点数分别为\(14,4,3,2\),求该树的结点总数\(n\)和度为\(4\)的结点个数,并给出推导过程。

\[\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*} \]

\(\Large 例2:\)已知一棵度为\(m\)的树中,有\(n_1\)个度为\(1\)的结点,有\(n_2\)个度为\(2\)的结点\(\cdots\)\(n_m\)个度为\(m\)的结点,问该树有多少个叶结点。

\[\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*} \]

posted @ 2024-07-15 17:59  Acidm  阅读(100)  评论(0编辑  收藏  举报