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题 握手定理

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

相关推荐
智者知已应修善业12 小时前
【51单片机8位数码管同时倒计时从9999】2024-1-25
c++·经验分享·笔记·算法·51单片机
洛水水12 小时前
【力扣100题】86.柱状图中最大的矩形
算法·leetcode·职场和发展
渡之12 小时前
GRiM-Net 深度解析 | 无人机 GNSS 拒止场景下两阶段跨视角视觉定位框架
深度学习·算法·动态规划·无人机
测试仪器廖生1359025638513 小时前
罗德与施瓦茨 FSP13频谱分析仪FSP30
网络·人工智能·算法
happymaker062613 小时前
LeetCodeHot100——560.和为K的子数组
算法
dtq042413 小时前
C语言刷题数组5,6(求平均值,求最大值)
c语言·数据结构·算法
郭梧悠13 小时前
Hash算法入门Hash冲突解决方案
算法·哈希算法
洛水水14 小时前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
happymaker062614 小时前
LeetCodeHot100——155.最小栈
算法
洛水水14 小时前
【力扣100题】85.每日温度
算法·leetcode·职场和发展