408真题解析-2010-5-数据结构-树的结点数量计算

一 真题2010-5

2010-05. 在一棵度为 4 的树 T T T中,若有 20 个度为 4 的结点,10 个度为 3 的结点,

1 个度为 2 的结点,10 个度为 1 的结点,则树 T T T 的结点总数是( )

A. 41

B. 82

C. 113

D. 122

二 题目要素解析

核心概念树的度结点数的关系。

  • 树的度:树中所有结点的度的最大值(本题为 4)。
  • 结点的度:结点拥有的子树个数。

解题定理握手定理(图论在树中的应用)。

  • 树中所有结点的度之和 + 1 = 树的总结点数。
  • 或者理解为:分支总数 = 总结点数 - 1

变量定义

  • n:总结点数。
  • n 0 n_0 n0:叶子结点数(度为 0)。
  • n 1 n_1 n1:度为 1 的结点数(10)。
  • n 2 n_2 n2:度为 2 的结点数(1)。
  • n 3 n_3 n3:度为 3 的结点数(10)。
  • n 4 n_4 n4:度为 4 的结点数(20)。

三 哔哔详解

本题考查的是树的基本性质计算,解题步骤如下:

设有 n 0 n_0 n0个度为0的结点(即叶子结点数),则总结点数为 N N N

N = n 0 + n 1 + n 2 + n 3 + n 4 = n 0 + 10 + 1 + 10 + 20 = 41 + n 0 N= n_0 + n_1 + n_2 + n_3 + n_4 = n_0 + 10 + 1 + 10 + 20 = 41 + n_0 N=n0+n1+n2+n3+n4=n0+10+1+10+20=41+n0

在一颗树中 总度数 = 总边数 = 总结点数 − 1 = N − 1 总度数=总边数=总结点数 - 1 = N -1 总度数=总边数=总结点数−1=N−1 。 因此,所有结点度之和应满足

4 x 20 + 3 x 10 + 2 x 1+ 1 x 10 + 0 x n 0 n_0 n0 = 122

41 + n 0 − 1 = 122 41 + n_0 -1 = 122 41+n0−1=122 得 n 0 = 82 n_0 = 82 n0=82, 故选B

四 参考答案

参考答案B

五 考点精析

5.1 树的概念

树 (Tree)

  • n(n≥0) 个结点的有限集。
  • n=0 时称为空树
  • n>0 时,有且仅有一个特定的称为根 (Root) 的结点;其余结点可分为 m(m≥0) 个互不相交的有限集,每个集合本身又是一棵树,称为根的子树 (Subtree)

结点的度 (Degree)

  • 结点拥有的子树个数

树的度

  • 树中所有结点的度的最大值

叶子结点 (Leaf)

  • 度为 0 的结点,又称终端结点。

分支结点

  • 度不为 0 的结点,又称非终端结点。

层次 (Level)

  • 根为第 1 层,根的孩子为第 2 层,以此类推。

树的高度 (Height/Depth)

  • 树中结点的最大层次。

5.2 树结点数量核心性质

1. 结点数与边数(总度数)的关系

  • 公式:

    树中所有结点的度之和 = 边数 = 总结点数 − 1 树中所有结点的度之和=边数=总结点数−1 树中所有结点的度之和=边数=总结点数−1

  • 原理:

    • 除了根结点 外,每一个结点都有且仅有一个父结点 ,即每一个结点对应一条入边
    • 总边数 = n − 1 总边数 = n−1 总边数=n−1
    • 而 "所有结点的度之和" 统计的是出边的总数。在树中,出边总数 = 入边总数 = 总边数。
  • 推论:

    n = 1 + ∑ ( 各结点的度 ) n=1+∑(各结点的度) n=1+∑(各结点的度)

2. 叶子结点数 ( n 0 n_0 n0) 的计算(通用公式)

设树中度为 i i i 的结点数为 n i n_i ni。

✅ 公式:

n 0 = 1 + ∑ i = 2 k ( i − 1 ) × n i n_0 = 1 + \sum_{i=2}^{k} (i - 1) \times n_i n0=1+i=2∑k(i−1)×ni

📌 说明

此公式适用于任意有根树,其中 n 0 n_0 n0 为叶子节点数(度为 0 的节点), n i n_i ni 为度为 i i i 的节点数。


🔍 推导过程:
  1. 总结点数
    n = n 0 + n 1 + n 2 + ⋯ + n k n = n_0 + n_1 + n_2 + \cdots + n_k n=n0+n1+n2+⋯+nk

  2. 总度数 (即所有节点的孩子数之和):
    n − 1 = 0 × n 0 + 1 × n 1 + 2 × n 2 + ⋯ + k × n k n - 1 = 0 \times n_0 + 1 \times n_1 + 2 \times n_2 + \cdots + k \times n_k n−1=0×n0+1×n1+2×n2+⋯+k×nk

    ✅ 因为树中有 n − 1 n-1 n−1 条边,每条边对应一个"父子关系",所以总孩子数 = n − 1 n - 1 n−1

  3. 将式 1 代入式 2,消去 n n n 和 n 1 n_1 n1,整理得

    • 由式 1 得: n = n 0 + n 1 + ∑ i = 2 k n i n = n_0 + n_1 + \sum_{i=2}^{k} n_i n=n0+n1+∑i=2kni

    • 代入式 2:
      ( n 0 + n 1 + ∑ i = 2 k n i ) − 1 = n 1 + 2 n 2 + ⋯ + k n k (n_0 + n_1 + \sum_{i=2}^{k} n_i) - 1 = n_1 + 2n_2 + \cdots + kn_k (n0+n1+i=2∑kni)−1=n1+2n2+⋯+knk

    • 移项化简:
      n 0 = 1 + ∑ i = 2 k ( i − 1 ) n i n_0 = 1 + \sum_{i=2}^{k} (i - 1)n_i n0=1+i=2∑k(i−1)ni


🌲 特例(二叉树):

二叉树中,节点度最多为 2,且通常只考虑度为 0、1、2 的节点。

此时:
n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1

这是 408 考研中最常考的公式之一!
💡 推导

由通用公式,令 k = 2 k=2 k=2,则:
n 0 = 1 + ( 2 − 1 ) n 2 = 1 + n 2 n_0 = 1 + (2-1)n_2 = 1 + n_2 n0=1+(2−1)n2=1+n2

即:叶子数 = 度为 2 的节点数 + 1

5.3 总结记忆表

考点 核心公式 / 口诀 适用场景
结点总数 n = 1 + 总度数 n = 1 + \text{总度数} n=1+总度数 已知各度数结点数,求总个数
叶子结点 ( n 0 n_0 n0) n 0 = 1 + ∑ ( i − 1 ) n i n_0 = 1 + \sum (i - 1)n_i n0=1+∑(i−1)ni 普通树求叶子
二叉树叶子 ( n 0 n_0 n0) n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1 二叉树求叶子(必考)
完全二叉树高度 ⌊ log ⁡ 2 ( n + 1 ) ⌋ \left\lfloor \log_2(n + 1) \right\rfloor ⌊log2(n+1)⌋ 求最小高度
结点编号 父: ⌊ i / 2 ⌋ \left\lfloor i/2 \right\rfloor ⌊i/2⌋,左: 2 i 2i 2i,右: 2 i + 1 2i+1 2i+1 完全二叉树定位

六 考点跟踪

年份 题号 考查内容 CSDN 参考链接(哔哔考研) VX参考链接(哔哔考研)
2009 第5题 完全二叉树 结点数 408真题解析-2009-5-数据结构-完全二叉树-结点数 408真题-2009-5-数据结构-完全二叉树-结点数
2010 第5题 握手定理

说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。

相关推荐
chilavert3182 小时前
技术演进中的开发沉思-329 JVM:垃圾回收(中)
java·jvm·算法
啊阿狸不会拉杆2 小时前
《机器学习》 第 9 章 - 深度强化学习
人工智能·算法·机器学习·计算机视觉·ai·ml
仰泳的熊猫2 小时前
题目 1429: 蓝桥杯2014年第五届真题-兰顿蚂蚁
数据结构·c++·算法·蓝桥杯
苦藤新鸡2 小时前
35.LRU缓存(最久未访问)问题
算法·链表·缓存
Yupureki2 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-分治
c语言·开发语言·数据结构·c++·算法·贪心算法
充值修改昵称2 小时前
数据结构基础:B*树B+树的极致优化
数据结构·b树·python·算法
one____dream2 小时前
【算法】相同的树与对称二叉树
b树·python·算法·递归
e疗AI产品之路2 小时前
心电分析诊断算法评估方法介绍
算法·心电分析
爱编码的傅同学2 小时前
【今日算法】LeetCode 11.盛水最多的容器 15.三数之和 283.移动0
数据结构·算法·leetcode