一 真题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 的节点数。
🔍 推导过程:
-
总结点数 :
n = n 0 + n 1 + n 2 + ⋯ + n k n = n_0 + n_1 + n_2 + \cdots + n_k n=n0+n1+n2+⋯+nk -
总度数 (即所有节点的孩子数之和):
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
-
将式 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题 | 握手定理 |
说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。