Skip to content

2025年 408 数据结构 第 4 题

数据结构2025年选择题2分

题目

下列关于二叉树及森林的叙述中,正确的是?( )。

错因

A

混淆了"满二叉树"与"完全二叉树"。满二叉树确实没有度为 1 的节点(每个内部节点都有左右两个孩子);但完全二叉树允许末层节点不满,最后一个内部节点可能只有左孩子而无右孩子,此时它的度就是 1。例:节点数为偶数的完全二叉树(如 6 个节点)必含恰好 1 个度为 1 的节点。

C

把"满二叉树叶子数 = 内部数 + 1"这条性质当成对所有二叉树都成立。反例:单链式二叉树(每个节点只有一个孩子)n 个节点中只有 1 个叶子、 个分支节点,分支远多于叶子。结论"分支 < 叶子"对一般二叉树并不成立。

D

该选项里的"链式树"按上下文应指表达式(语法)树——只有这种树的"根"才与"运算符顺序"相关。表达式树的根存的是最后计算的运算符,而非最先:求值采用后序遍历,先递归求左右子树,最后用根节点的运算符合并两侧结果。例如 a+b*c 的语法树根是 +,因为乘法 b*c 必须先算完,加法是最后一步。把"最后"误读成"最先"是常见反向错误。

总解析

逐项核对

  • A ✗ 完全二叉树可以有度 1 节点。当总节点数 为偶数时,必有恰好一个度 1 节点(最后一个内部节点只有左孩子)。
  • B ✓ 标准结论。森林转二叉树规则即"孩子兄弟表示法"——把每个节点的第一个孩子作为左子、把它的下一个兄弟作为右子。任意森林通过这套规则唯一对应一棵二叉树(且根节点的右子树代表"森林中下一棵树"),逆变换也成立。
  • C ✗ 反例:单链树 1→2→3→…→n,只有 1 个叶子、 个分支。
  • D ✗ 表达式树的根存的是"最后计算"的运算符。

最终答案是 B

编者注(生僻术语):本题选项 D 中的"链式树",编者翻遍多份独立资料均作此名,但这个术语并未出现在 408 大纲及王道、天勤等主流教辅中。从语义看,"根中保存运算符"这种说法只在表达式(语法)树的上下文里成立,所以此处"链式树"按理应当指"用链式存储实现的表达式树"。

至于命题人为何不直接写"表达式树"而要在前面加"链式"——目前没有公开解释。"链式"在数据结构语境里通常对应"链式存储"(与顺序存储相对),命题人可能想顺带强调存储方式,但放在这道题里反而引发歧义。

不影响判断:无论"链式树"具体所指为何,"根存最先计算的运算符"这一表述本身就反了——表达式树(含其链式实现)的根存的都是最后计算的运算符(求值采用后序遍历)。所以 D 选项依然错。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数