一棵有 $n$ 个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第 $1$ 个位置。若存储在数组第 $9$ 个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。
这道题考的是完全二叉树数组存储的规律。拿到下标9,先判断它是父节点4的左孩子还是右孩子,一旦定死身份,兄弟和子节点的位置公式瞬间就能套出来。
最容易栽跟头的就是分不清奇偶对应的左右关系。很多学生看到9是奇数,下意识觉得它是左孩子(因为习惯左孩子在前),结果把兄弟算成10,右子算成19,直接掉进陷阱选错。其实完全二叉树数组里,奇数下标永远是右孩子,偶数才是左孩子,这个对应关系必须刻在脑子里,否则一遇到数字就晕。
考察知识点:二叉树 — 顺序存储(完全二叉树)。这是数据结构里最基础也最实用的考点,每年必考,尤其是入门级和普及组,命题人特别喜欢用具体的数字下标来考规律,因为只要记错奇偶对应关系,哪怕公式背得再熟也会算错。从历年数据看,二叉树基础在题库里共出现过220题,覆盖从2008到2026的所有级别,其中2023年突然考了20题,2024年更是飙到60题,说明这个考点热度持续上升,入门级8题里这类数字题占比很高。趋势很明显:越往后考得越细,越喜欢用具体数字让你判断位置,而不是只给个抽象公式。所以复习时不能光背公式,得练手感,看到数字就要条件反射判断奇偶。拿到题先想什么?先想9这个数字在数组里的身份。完全二叉树用数组存,根是1,那9的父节点肯定是⌊9/2⌋=4。这时候关键来了:4有两个孩子,左孩子是2×4=8,右孩子是2×4+1=9。所以9是右孩子,那它的兄弟只能是左孩子8。这一步判断错了,后面全错。接下来题目问兄弟和右子节点。兄弟刚确定了是8。右子节点呢?公式是2i+1,代入9就是19。左子节点是18,但题目没问。所以答案就是8和19,对应选项C。验证一下:完全二叉树节点连续排列,8和19都在范围内,没问题。避坑提醒:千万别看到9是奇数就以为它是左孩子,这是最常见的惯性思维陷阱。记住口诀:奇右偶左,数组里永远如此。另外,兄弟节点的位置公式是:i为偶数时兄弟是i+1,i为奇数时兄弟是i-1,这个也可以直接套,9是奇数,9-1=8,结果一样。两种方法都能用,但第一种先判断身份更稳妥,不容易乱套公式。考频数据已经说了,二叉树基础年年都有,入门级这几年考得挺勤,2022年这道题就是典型代表。预测的话,既然2023、2024考得这么猛,未来几年入门级和普及组大概率还会继续考这类数字定位题,形式可能更灵活,比如给个范围让你判断某个节点是否存在,或者结合层数出点花样,但核心还是考奇偶关系和父子兄弟的数组下标规律。所以复习时要把这个规律练到肌肉记忆,看到数字就能脱口而出父、子、兄弟的位置,这样遇到变种题也能快速反应。总之,这道题看似简单,实则是对完全二叉树数组存储规律的一次精准打击,抓住奇偶对应关系,答案自然水到渠成。