1、习题五 树与二叉树一、选择题1、一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足 。A、所有的结点均无左孩子 B、所有的结点均无右孩子C、 只有一个叶子结点 D、是任意一棵二叉树2、一棵完全二叉树上有 1001 个结点,其中叶子结点的个数是 。A、250 B、500 C、254 D、505 E、以上答案都不对3、以下说法正确的是 。A、若一个树叶是某二叉树前序遍历序列中的最后一个结点,则它必是该子树后序遍历序列中的最后一个结点B、若一个树叶是某二叉树前序遍历序列中的最后一个结点,则它必是该子树中序遍历序列中的最后一个结点C、 在二叉树中,具有两个子女的父结点,在中序遍历
2、序列中,它的后继结点最多只能有一个子女结点D、在二叉树中,具有一个子女的父结点,在中序遍历序列中,它没有后继子女结点4、以下说法错误的是 。A、哈夫曼树是带权路径长度最短得数,路径上权值较大的结点离根较近B、若一个二叉树的树叶是某子树中序遍历序列中的第一个结点,则它必是该子树后序遍历序列中的第一个结点C、 已知二叉树的前序遍历和后序遍历并不能唯一地确定这棵树,因为不知道树的根结点是哪一个D、在前序遍历二叉树的序列中,任何结点其子树的所有结点都是直接跟在该结点之后的5、一棵有 124 个叶结点的完全二叉树,最多有 个结点。A、247 B、248 C、249 D、250 E、2516、任何一棵二叉
3、树的叶结点在前(先)序、中序和后序遍历序列中的相对次序 。A、不发生变化 B、发生变化 C、不能确定7、设 a、b 为一棵二叉树上的两个结点。在中序遍历时,a 在 b 前面的条件是 。A、a 在 b 的右方 B、a 在 b 的左方 C、a 是 b 的祖先 D、a 是 b 的子孙8、设深度为 k 的二叉树上只有度为 0 和度为 2 的结点,则这类二叉树上所含的结点总数为 。A、k+1 B 、2k C 、2k-1 D、2k+19、设有 13 个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有 个结点。A、13 B、12 C、26 D、2510、下面几个符号串编码集合中,不是前缀编码的是 。A、0,10
4、,110,1111 B、11,10,001,101,0001C、 00,010,0110,1000 D、b,c,aa,ac,aba,abb,abc11、欲实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳的方案是二叉树采用 存储结构。A、三叉链表 B、广义表 C、二叉链表 D、顺序表12、以下说法错误的是 。A、存在这样的二叉树,对它采用任何次序遍历其结点访问序列均相同B、 二叉树是树的特殊情形C、由树转换成二叉树,其根结点的右子树总是空的D、在二叉树只有一棵子树的情况下也要明确指出该子树是左子树还是右子树13、树的基本遍历策略可分为先根遍历和后根遍历,二叉树的基本遍历策略可分为先序、中
5、序和后序三种遍历。我们把由树转化得到的二叉树称该树对应的二叉树,则下面 是正确的。A、树的先根遍历序列与其对应的二叉树先序遍历序列相同B、树的后根遍历序列与其对应的二叉树后序遍历序列相同C、树的先根遍历序列与其对应的二叉树中序遍历序列相同D、以上都不对14、若以二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序。则该二叉树是 。A、二叉排序树 B、哈夫曼树 C、堆15、下列有关二叉树的说法正确的是 。A、二叉树的度为 2 B、一棵二叉树度可以小于 2C、二叉树中至少有一个结点的度为 2 D、二叉树中任一个结点的度都为 216、某二叉树中序序列为 ABCDEFG,后序序列为 BDCA
6、FGE,则前序序列是 。A、EGFACDB B、EACBDGFC、 EAGCFBD D、上面的都不对17、对二叉排序树进行 遍历,可以得到该二叉树所有结点构成的排序序列。A、前序 B、中序 C、后序 D、按层次18、由二叉树的前序和后序遍历序列 唯一地确定这棵二叉树。A、能 B、不能19、在一棵度为 3 的树中,度为 3 的结点数为 2 个,度为 2 的结点数为 1 个,度为 1 的结点数为 2 个,则度为 0 的结点数为 个。A、4 B、5 C、6 D、720、在一棵深度为 h 的完全二叉树中,所含结点的个数不小于 。A、2h B、2h+1 C 、2 h-1 D、 2h-121、在一棵具有
7、n 个结点的二叉树第 i 层上,最多具有 个结点。A、2 i B、2 i+1 C、2 i-1 D、2 n22、在下列情况中,可称为二叉树的是 。A、每个结点至多有两棵子树的树 B、哈夫曼树C、每个结点至多有两棵子树的有序树 D、每个结点只有一棵右子树E、以上答案都不对 二、填空题1、8 层完全二叉树至少有 128 个结点,拥有 100 个结点的完全二叉树的最大层数为 7 。2、树在计算机内的表示方式有 双亲表示法 、 孩子表示法 、 孩子兄弟表示法 。3、一棵有 n 个结点的满二叉树有 0 个度为 1 的结点,有 n/2 个分支(非终端)结点和 n/2+1 个叶子,该满二叉树的深度为 log2
8、n+1 。4、若一个二叉树的叶子结点是某子树的中序遍历序列中的最后一个结点,则它必是孩子树的 前序遍历 序列中的最后一个结点。5、一棵共有 n 个结点的树,其中所有分支结点的度均为 k,则该树中的叶子结点个数为 (n( k-1)+1)/k 。6、深度为 k(设根的层数为 1)的完全二叉树至少有 2k-1 个结点,至多有 2k-1 个结点。7、设只包含根结点的二叉树高度为 0,则高度为 k 的二叉树最大结点数为 2k+1-1 ,最小结点数为 k+1 。8、一棵完全二叉树有 999 个结点,它的深度为 10 。9、对于一棵具有 n 个结点的树,该树中所有结点的度数之和为 n-1 。10、有 n 个
9、结点并且其高度为 n 的二叉树有 2n-1 个。11、一棵具有 n 个结点的二叉树,若它有 n0 个叶子结点,则该二叉树上度为 1 的结点n1= n-2n0+1 。12、若一棵二叉树的叶子数为 n0,则该二叉树中左、右子树皆非空的结点个数为 n0-1 。13、设 n0 为哈夫曼树的叶子结点数目,则该哈夫曼树共有 2n0-1 个结点。14、若以4、5、6、7、8作为叶子结点的权值构造哈夫曼树,则其带权路径长度是 69 。三、判断题1、完全二叉树的某结点若无左孩子,则它必是叶结点。 (对 )2、存在这样的二叉树,对它采用任何次序的遍历,结果相同。 ( 对 )3、二叉树就是结点度为 2 的树。 (
10、错 )4、二叉树中不存在度大于 2 的结点,当某个结点只有一棵子树时无所谓左、右子树。 ( 错 )5、已知二叉树的前序遍历序列和后序遍历序列并不能唯一地确定这棵树,因为不知道树的根结点是哪一个。 (错 )6、在哈夫曼编码中,当两个字符出现的频率相同时,其编码也相同,对于这种情况应作特殊处理。 (错 )7、中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。 (对 )8、将一棵树转换成二叉树后,根结点没有左子树。 (错 )9、用树的前序遍历和中序遍历可以导出树的后序遍历。 (对 )10、哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。 ( 对 )11、不使用递归也能实现二叉树前序
11、、中序和后序遍历。 ( 对 )习题五 树与二叉树 21. 填空题 树是 n( n0)结点的有限集合,在一棵非空树中,有(有且仅有一个)个根结点,其余的结点分成 m(m0)个(互不相交)的集合,每个集合都是根结点的子树。 树中某结点的子树的个数称为该结点的(度) ,子树的根结点称为该结点的(孩子) ,该结点称为其子树根结点的(双亲) 。 一棵二叉树的第 i(i1)层最多有( 2i-1)个结点;一棵有 n(n0)个结点的满二叉树共有((n+1)/2)个叶子结点和((n-1)/2 )个非终端结点。 设高度为 h 的二叉树上只有度为 0 和度为 2 的结点,该二叉树的结点数可能达到的最大值是( 2h
12、-1) ,最小值是(2h-1 ) 。 深度为 k 的二叉树中,所含叶子的个数最多为(2k-1 ) 。 具有 100 个结点的完全二叉树的叶子结点数为(50 ) 。 已知一棵度为 3 的树有 2 个度为 1 的结点,3 个度为 2 的结点,4 个度为 3 的结点。则该树中有(12 )个叶子结点。 某二叉树的前序遍历序列是 ABCDEFG,中序遍历序列是 CBDAFGE,则其后序遍历序列是(CDBGFEA ) 。 在具有 n 个结点的二叉链表中,共有( 2n )个指针域,其中(n-1 )个指针域用于指向其左右孩子,剩下的(n+1 )个指针域则是空的。 在有 n 个叶子的哈夫曼树中,叶子结点总数为( n) ,分支结点总数为( n-1) 。已知二叉树的中序和后序序列分别为 CBEDAFIGH 和 CEDBIFHGA,试构造该二叉树。对给定的一组权值 W(5,2,9,11,8,3,7) ,试构造相应的哈夫曼树,并计算它的带权路径长度。【解答】构造的哈夫曼树如图 5-13 所示。树的带权路径长度为:WPL=24+34+53+73+83+92+112=120