🏷️ 知识点:Ds.05.02.02

共 5 道相关题目

课后题 年第 18 题 数据结构 选择题

一棵有n个结点的二叉树采用二叉链存储结点,其中空指针数为( )。

A. n B. n+1 C. n−1 D. 2n

[tag_link]

correct answer: B

结论

二叉链共有2n个指针域,非空边n−1,空指针为2n−(n−1)=n+1。

推导

二叉链共有2n个指针域,非空边n−1,空指针为2n−(n−1)=n+1。

易错点

空指针数不是n−1,后者是非空边数。


课后题 年第 19 题 数据结构 选择题

设有n(n≥1)个结点的二叉树采用三叉链表表示,其中每个结点包含三个指针,分别指向左孩子、右孩子及双亲(不存在则为空),下列说法中正确的是( )。 Ⅰ.树中空指针的数量为n+2 Ⅱ.所有度为2的结点均被三个指针所指向 Ⅲ.每个叶结点均被一个指针所指向

A. I B. I、Ⅱ C. I、Ⅲ D. Ⅱ、Ⅲ

[tag_link]

correct answer: A

结论

三叉链非空指针含n−1条孩子边和n−1条双亲边,空域=3n−(2n−2)=n+2;根为度2时仅两指针指向它,故仅I。

推导

三叉链非空指针含n−1条孩子边和n−1条双亲边,空域=3n−(2n−2)=n+2;根为度2时仅两指针指向它,故仅I。

易错点

‘被指向’要区分孩子指针与双亲指针,根结点没有双亲指针。


课后题 年第 21 题 数据结构 选择题

在一个用数组表示的完全二叉树中,根结点下标为1,下标17和19结点的最近公共祖先下标是( )。

A. 1 B. 2 C. 4 D. 8

[tag_link]

correct answer: C

结论

17的祖先为8、4、2、1,19的祖先为9、4、2、1,最近公共祖先下标为4。

推导

17的祖先为8、4、2、1,19的祖先为9、4、2、1,最近公共祖先下标为4。

易错点

父下标为⌊i/2⌋(根下标1)。


课后题 年第 23 题 数据结构 选择题

具有n个结点的三叉树用三叉链表表示,则树中空指针域的个数为( )。

A. 3n+1 B. 2n+1 C. 3n−1 D. 3n

[tag_link]

correct answer: B

结论

三叉链有3n个指针域,树边n−1个非空,空域=3n−(n−1)=2n+1。

推导

三叉链有3n个指针域,树边n−1个非空,空域=3n−(n−1)=2n+1。

易错点

不要把三叉链误当二叉链。


课后题 年第 29 题 数据结构 综合题

已知一棵二叉树按顺序存储结构进行存储,设计一个算法,求编号分别为i和j的两个结点的最近公共祖先结点的值。

[tag_link]

参考答案

采用1基顺序存储,先验证i、j对应结点存在;反复将较大编号替换为floor(index/2),直到i=j,返回T[i]。

推导过程

顺序二叉树中结点的双亲编号为floor(k/2)。循环每次提升较深结点,编号相等时即为最近公共祖先;若任一位置为空则报告结点不存在。

评分要点

验证存在性;使用floor(k/2)逐级上移;处理根/相等/不存在边界。

易错点

混用0基父子公式,或只比较一次父结点。