1、 习题 6 一、单项选择题 1. 在一棵度为 3 的树中,度为 3 的结点数为 2 个,度为 2 的结点数为 1 个,度为 1 的结点数为 2 个,则度为 0 的结点数为( )个。 A. 4 B. 5 C. 6 D. 7 2. 假设在一棵二叉树中,双分支结点数为 15,单分支结点数为 30 个,则叶子结点数为( )个。 A. 15 B. 16 C. 17 D. 47 3. 假定一棵三叉树的结点数为 50,则它的最小高度为( )。 A. 3 B. 4 C. 5 D. 6 4. 在一棵二叉树上第 4 层的结点数最 多为( )。 A. 2 B. 4 C. 6 D. 8 5. 用顺序存储的方法将完全二
2、叉树中的所有结点逐层存放在数组中 R1n,结点 Ri若有左孩子,其左孩子的编号为结点( )。 A. R2i+1 B. R2i C. Ri/2 D. R2i-1 6. 由权值分别为 3,8,6,2,5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。 A. 24 B. 48 C. 72 D. 53 7. 线索二叉树是一种( )结构。 A. 逻辑 B. 逻辑 和存储 C. 物理 D. 线性 8. 线索二叉树中,结点 p 没有左子树的充要条件是( )。 A. p-lc=NULL B. p-ltag=1 C. p-ltag=1 且 p-lc=NULL D. 以上都不对 9. 设 n , m 为一
3、棵二叉树上的两个结点,在中序遍历序列中 n 在 m 前的条件是( )。 A. n在 m右方 B. n在 m 左方 C. n是 m的祖先 D. n是 m的子孙 10. 如果 F是由有序树 T转换而来的二叉树,那么 T中结点的前序就是 F中结点的( )。 A. 中序 B. 前序 C. 后序 D. 层次序 11. 欲实现任意二叉树的后序遍历的非递归算法而不必使用栈,最佳方案是二叉树采用( )存储结构。 A. 三叉链表 B. 广义表 C. 二叉链表 D. 顺序 12. 下面叙述正确的是( )。 A. 二叉树是特殊的树 B. 二叉树等价于度为 2 的树 C. 完全二叉树必为满二叉树 D. 二叉树的左右子
4、树有次序之分 13. 任何一棵二叉树的叶子结点在先 序、中序和后序遍历序列中的相对次序( )。 A. 不发生改变 B. 发生改变 C. 不能确定 D. 以上都不对 14. 已知一棵完全二叉树的结点总数为 9 个,则最后一层的结点数为( )。 A. 1 B. 2 C. 3 D. 4 15. 根据先序序列 ABDC 和中序序列 DBAC 确定对应的二叉树,该二叉树( )。 A. 是完全二叉树 B. 不是完全二叉树 C. 是满二叉树 D. 不是满二叉树 二、判断题 1. 二叉树中每个结点的度不能超过 2,所以二叉树是一种特殊的树。 ( ) 2. 二叉树的前序遍历中,任意结点均处在其子女结点之前。 (
5、 ) 3. 线索二叉树是一种逻辑结构。 ( ) 4. 哈夫曼树的总结点个数(多于 1 时)不能为偶数。 ( ) 5. 由二叉树的先序序列和后序序列可以唯一确定一颗二叉树。 ( ) 6. 树的后序遍历与其对应的二叉树的后序遍历序列相同。 ( ) 7. 根据任意一种遍历序列即可唯一确定对应的二叉树。 ( ) 8. 满二叉树也是完全二叉 树。 ( ) 9. 哈夫曼树一定是完全二叉树。 ( ) 10. 树的子树是无序的。 ( ) 三、填空题 1. 假定一棵树的广义表表示为 A( B( E), C( F( H, I, J), G), D),则该树的度为_,树的深度为 _,终端结点的个数为 _,单分支结点
6、的个数为 _,双分支结点的个数为 _,三分支结点的个数为 _, C 结点的双亲结点为 _,其孩子结点为 _和 _结点。 2. 设 F 是一个 森林, B 是由 F 转换得到的二叉树, F 中有 n 个非终端结点,则 B 中右指针域为空的结点有 _个。 3. 对于一个有 n 个结点的二叉树,当它为一棵 _二叉树时具有最小高度,即为_,当它为一棵单支树具有 _高度,即为 _。 4. 由带权为 3, 9, 6, 2, 5 的 5 个叶子结点构成一棵哈夫曼树,则带权路径长度为 _。 5. 在一棵二叉排序树上按 _遍历得到的结点序列是一个有序序列。 6. 对于一棵具有 n 个结点的二叉树,当进行链接存储
7、时,其二叉链表中的指针域的总数为 _个,其中 _个用于链接孩子结点, _个空闲着。 7. 在一棵二叉树中,度为 0 的结点个数为 n0,度为 2 的结点个数为 n2,则 n0=_。 8. 一棵深度为 k 的满二叉树的结点总数为 _,一棵深度为 k 的完全二叉树的结点总数的最小值为 _,最大值为 _。 9. 由三个结点构成的二叉树,共有 _种不同的形态。 10. 设高度为 h 的二叉树中只有度为 0 和度为 2 的结点,则此类二叉树中所包含的结点数至少为 _。 11. 一棵含有 n 个结点的 k 叉树, _形态达到最大深度, _形态达到最小深度。 12. 对于一棵具有 n 个结点的二叉树,若一个
8、结点的编号为 i(1 i n),则它的左孩子结点的编号为 _,右孩子结点的编号为 _,双亲结点的编号为 _。 13. 对于一棵具有 n 个结点的二叉树,采用二叉链表存储时,链表中指针域的总数为_个,其中 _个用于链接孩子结点, _个空闲着。 14. 哈夫曼树是指 _的二叉树。 15. 空树是指 _,最小的树是指 _。 16. 二叉树的链式存储结构有 _和 _两种。 17. 三叉链表比二叉链表多一个指向 _的指针域。 18. 线索是指 _。 19. 线索链表中的 rtag 域值为 _时,表示该结点无右孩子,此时 _域为指向该结点后继线索的指针。 20. 本节中我们学习的树的存储结构有 _、 _和
9、 _。 四、应用题 1. 已知一棵树边的集合为 , , , , , , , , , , , , ,请画出这棵树,并回答下列问题: ( 1)哪个是根结点? ( 2)哪些是叶子结点? ( 3)哪个是结点 g 的双亲? ( 4)哪些是结点 g 的祖先? ( 5)哪些是结点 g 的孩子? ( 6)哪些是结点 e 的孩子? ( 7)哪些是结点 e 的兄弟?哪些是结点 f 的兄弟? ( 8)结点 b 和 n 的层次号分别是什么? ( 9)树的深度是多少? ( 10)以结点 c 为根的子树深度是多少? 2. 一棵度为 2 的树与一棵二叉树有何区别。 3. 试分别画出具有 3 个结点的树和二叉树的所有不同形态
10、? 4. 已知用一维数组存放的一棵完全二叉树: ABCDEFGHIJKL,写出该二叉树的先序、中序和后序遍历序列。 5. 一棵深度为 H 的满 k 叉树有如下性质:第 H 层上的结点都是叶子结点,其余各层上每个结点都有 k 棵非空子树,如果按层次自上至下,从左到右顺序从 1 开始对全部结点编号,回答下列问题: ( 1)各层的结点数目是多少? ( 2)编号为 n 的结点的父结点如果存在,编号是多少? ( 3)编号为 n 的结点的第 i 个孩子结点如果存在,编号是多少? ( 4)编号为 n 的结点有右兄弟的条件是什么?其右兄弟的编号是多少? 6. 找出所有满足下列条件的二叉树: ( 1)它们在先序
11、遍历和中序遍历时,得到的遍历序列相同; ( 2)它们在后序遍历和中序遍历时,得到的遍历序列相同; ( 3)它们在先序遍历 和后序遍历时,得到的遍历序列相同; 7. 假设一棵二叉树的先序序列为 EBADCFHGIKJ,中序序列为 ABCDEFGHIJK,请写出该二叉树的后序遍历序列。 8. 假设一棵二叉树的后序序列为 DCEGBFHKJIA,中序序列为 DCBGEAHFIJK,请写出该二叉树的后序遍历序列。 9. 给出如图 5-14 所示的森林的先根、后根遍历结点序列,然后画出该森林对应的二叉树。 10 给定一组权值( 5, 9, 11, 2, 7,16),试设计相应的哈夫曼树。 习题 6参考答
12、案 一、单项选择题 1. C 2. B 3. C 4. D 5. B 6. D 7. C 8. B 9. B 10. B 11. A 12. D 13. A 14. B 15. A 二、判断题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 三、填空题 1. 3, 4, 6, 1, 1, 2, A, F, G 2. n+1 3. 完全, 2log ( 1)n,最大, n 4. 55 5. 中序 6. 2n, n-1, n+1 7. n2+1 8. 2k-1, 2k-1, 2k-1 9. 5 10. 2h-1 11. 单支树,完全二叉树 12. 2i, 2i+1, i/2(或 i/
13、2) 13. 2n, n-1, n+1 14. 带权路径长度最小 15. 结点数为 0,只有一个根结点的树 16. 二叉链表,三叉链表 17. 双亲结点 18. 指向结点前驱和后继信息的指针 19. 1, RChild 20. 孩子表示法,双亲表示法,长子兄弟表示法 A B D E F C G H J I K N O M L 图 5-14 四、应用题 1. 解答: 根据给定的边确定的树如图 5-15 所示。 其中根结点为 a; 叶子结点有: d、 m、 n、 j、 k、 f、 l; c 是结点 g 的 双亲; a、 c 是结点 g 的祖先; j、 k 是结点 g 的孩子; m、 n 是结点 e
14、 的子孙; e 是结点 d 的兄弟; g、 h 是结点 f 的兄弟; 结点 b 和 n 的层次号分别是 2 和 5; 树的深度为 5。 2. 解答: 度为 2 的树有两个分支,但分支没有左右之分;一棵二叉树也有两个分支,但有左右之分,左右子树不能交换。 3. 解答: 略 4. 解答: 先序序列: ABDHIEJKCFLG 中序序列: HDIBJEKALFCG 后序序列: HIDJKEBLFGCA 5. 解答: ( 1)第 i 层上的结点数目是 mi-1。 ( 2)编号为 n 的结点的父结点如 果存在,编号是 (n-2)/m)+1。 ( 3)编号为 n 的结点的第 i 个孩子结点如果存在,编号是
15、 (n-1)*m+i+1。 ( 4)编号为 n 的结点有右兄弟的条件是 (n-1)%m 0。其右兄弟的编号是 n+1。 6. 解答: ( 1)先序序列和中序序列相同的二叉树为:空树或者任一结点均无左孩子的非空二叉树; ( 2)中序序列和后序序列相同的二叉树为:空树或者任一结点均无右孩子的非空二叉树; ( 3)先序序列和后序序列相同的二叉树为:空树或仅有一个结点的二叉树。 7. 解答: 后序序列: ACDBGJKIHFE 8. 解答: 先序序 列: ABCDGEIHFJK 9. 解答: 先根遍历: ABCDEFGHIJKLMNO 后根遍历: BDEFCAHJIGKNOML 森林转换成二叉树如图 5-16 所示。 10. 解答: 构造而成的哈夫曼树如图 5-17 所示。 a b c d e g f h i m n j k i 图 5-15 50 9 20 30 11 16 14 7 7 2 5 图 5-17 B G D C H K E I F J L M N O A 图 5-16