CSP-J 入门级 · CSP 2025 入门级第一轮 第 14 题

选择题 · 答案 C · 考点:二叉树基础、树形结构

← 整套速查表 CSP-J 入门级 全部真题

题目

一棵包含 $1000$ 个结点的完全二叉树,其叶子结点的数量是多少?

答案:C

考点

二叉树基础树形结构

解题思维

这题考完全二叉树的叶子数公式:⌈n/2⌉。拿到 1000 这种偶数,直接除以 2 就是答案;若是奇数,记得加 1 再除。别把公式记反了,那是坑。

常见错误

最容易栽跟头的是把符号搞混:⌈x⌉是向上取整,⌊x⌋是向下取整。很多学生死记硬背,结果偶数时⌈n/2⌉和n/2一样,奇数时却算错成(n-1)/2。还有的是把“最后一个非叶子编号”当成叶子数,那个是⌊n/2⌋,叶子数其实是 n 减去这个数,也就是⌈n/2⌉。n=1000 时,⌊1000/2⌋=500 是最后一个有孩子的节点编号,叶子就是 1000-500=500,选 C 没错。

详细解析(节选)

这道题考查的是完全二叉树中叶子节点数量的计算,属于数据结构中树形结构的基础性质,也是 CSP 入门级和 GESP 六级、七级等考试中高频出现的考点。

首先,我们要把概念理顺。完全二叉树的定义很关键:除了最后一层,其他层都是满的,且最后一层的节点都靠左排列。叶子节点就是没有子节点的节点。在按层次从 1 开始编号的完全二叉树中,有一个非常重要的性质:节点 i 的左孩子是 2i,右孩子是 2i+1。这意味着,只要 2i 大于树的总节点数 n,节点 i 就没有左孩子,自然也就没有右孩子,它就是一个叶子节点。

基于这个性质,我们可以推导出两个核心公式: 1. 最后一个有子节点的节点编号是 ⌊n/2⌋(向下取整)。 2. 叶子节点的数量等于总节点数减去最后一个非叶子节点的编号,即 n - ⌊n/2⌋,化简后就是 ⌈n/2⌉(向上取整)。

为什么是向上取整?因为当 n 是偶数时,n/2 是整数,⌈n/2⌉ = n/2;当 n 是奇数时,n/2 是 x.5,向上取整就是 x+1,正好等于 (n+1)/2。这个公式非常简洁,是秒杀此类题目的利器。

回到本题,n=1000,是一个偶数。直接套用公式:叶子数 = ⌈1000/2⌉ = 500。或者用另一种思路验证:最后一个有孩子的节点是 ⌊1000/2⌋ = 500 号节点,那么 501 到 1000 号节点全是叶子,共 1000 - 500 = 500 个。两种方法结果一致,答案选 C。

关于命题视角,这个考点喜欢挖两个坑:一是符号含义,⌈⌉和⌊⌋千万别记反,否则偶数时虽然结果碰巧一样,奇数时就会算错;二是适用范围,这个公式只针对完全二叉树,普通二叉树不适用,有些题目会故意给一个非完全二叉树让你用这个公式,那就是陷阱。另外,n=1 这种极端情况也要小心,公式给出⌈1/2⌉=1,符合事实(根节点就是叶子)。

从考频数据来看,"树形结构"这个大类在题库中总共考过 26 题,覆盖了 CSP 提高级、入门级以及 NOIP 初赛等多个级别,分布上 2026 年考了 8 题,2023 年考了 6 题,说明近年来热度在回升。而"二叉树基础"这个细分考点更是重灾区,题库共 220 题,其中 2024 年高达 60 题,2025 年有 67 题,2026 年也有 28 题,GESP 六级更是考了 100 题,占比极高。这说明完全二叉树的性质几乎是必考点,尤其是这种直接给节点数求叶子数的计算题。

预测未来趋势,既然 2024-2026 年二叉树基础题量持续高位,且完全二叉树性质是核心,未来大概率仍会以计算题、选择题形式出现,可能会稍微增加一点变式,比如结合高度计算或者给出非完全二叉树干扰项。暂无足够依据预测具体的题型变化,但掌握这个公式和背后的编号逻辑是应对万变不离其宗的关键。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断