第 5 次作业 · 树与哈夫曼编码

选择题

1. 度为 4 的树中,度为 4、3、2、1 的结点数分别为 20、10、1、10,叶结点有多少?

展开答案

82,对应 B。由边数等于各结点度数之和,又等于结点总数减一,可解得叶结点数。

2. 满二叉树有 mm 条树枝、nn 个结点、深度为 hh,三者关系是什么?

展开答案

m=n−1m=n-1,n=2h−1n=2^h-1。源答案对应 D。

3. 二叉树前序与后序序列次序恰好相反,这棵树有什么特点?

展开答案

每个分支结点的度都为 1,对应 D。

4. 二叉搜索树的查找效率主要与什么有关?

展开答案

树的深度,对应 A。

5. 森林 FF 转为二叉树 TT 后,FF 的叶结点数等于 TT 中哪类结点数?

展开答案

左孩子指针为空的结点数,对应 C。

6. 一棵普通二叉树按层次存入 A[1..n],第 ii 个结点的左孩子位置能否由 2i2i 确定?

展开答案

无法确定,对应 D。只有完全二叉树按层存储时才直接使用 2i2i。

7. 中缀表达式 A+B*C-D/E 的前缀形式是什么?

展开答案

- + A * B C / D E,对应 D。

8. 题给五个字符编码方案中,哪组不是前缀编码?

展开答案

11,10,001,101,0001,对应 B;10 是 101 的前缀。

9. 权值为 3,9,6,2,5 的哈夫曼树,带权路径长度是多少?

展开答案

55,对应 B。

10. 有 11 个叶结点的哈夫曼树共有多少个结点?

展开答案

21,对应 B。严格二叉树满足总结点数为 2n0−12n_0-1。

填空题

1. 完全二叉树按层编号,结点 ii 的双亲、左右孩子编号是什么?

展开答案

⌊i/2⌋\lfloor i/2\rfloor、2i2i、2i+12i+1,编号存在时成立。

2. 度为 kk 的树,第 ii 层最多有多少个结点?

展开答案

ki−1k^{i-1}。

3. 含 2047 个结点的满二叉树有多少叶结点?

展开答案

1024。

4. 完全二叉树按层存为 A,B,C,D,E,F,G,H,I,J,后序遍历是什么?

展开答案

HIDJEBFGCA。

5. 含 nn 个结点的二叉链表有多少指针域、有效孩子链接和空指针?

展开答案

共 2n2n 个指针域,其中 n−1n-1 个链接孩子,n+1n+1 个为空。

6. 前序为 ABDCEFG、中序为 DBCAFEG,后序是什么?

展开答案

DCBFGEA。

7. 顺序存储二叉树中,编号 ii、jj 结点在同层的条件是什么?

展开答案

⌊log⁡2i⌋=⌊log⁡2j⌋\lfloor\log_2 i\rfloor=\lfloor\log_2 j\rfloor。

8. A,B,C,DA,B,C,D 分别为 2、3、4、5,两个题给前缀表达式的值是多少?

展开答案

+-*ABCD 的值为 7;-*A+BCD 的值为 9。

9. 依次插入 54,28,16,34,73,62,95,60,26,43 建 BST,查找 62 比较几次?

展开答案

3 次:依次比较 54、73、62。

10. 叶权 4,5,6,7,8 构造哈夫曼树,带权路径长度是多少?

展开答案

69。

编程题提交

树叶结点遍历(树-基础题)

查看提交实现

提交建立二叉树并递归遍历;遇到左右孩子都为空的结点时输出,从而只访问叶结点。

计算器(表达式树实现)

查看提交实现

提交把操作数放在叶结点、运算符放在分支结点,递归求左右子表达式并在根处计算。它与上次后缀栈版本解决同一类问题,但保存的是表达式结构。

词频统计(树实现)

查看提交实现

提交以单词为关键字建立二叉搜索树;相同单词增加计数,小于当前结点进入左子树,大于则进入右子树。中序遍历可按字典序输出。

哈夫曼实验

查看提交实现

lab_tree2 保存 huffman2student.c、输入和输出。提交统计字符频率、构造哈夫曼树并生成编码。源目录只有学生版实现,不另称为教师标准答案。

服务优化

查看提交实现

提交用树形或优先关系组织服务数据并计算优化结果。独立题面未保存,无法确认全部业务约束,故不从代码反推原题。

评论