A. 唯一的
B. 有多种
C. 有多种,但根结点都没有左孩子
D. 有多种,但根结点都没有右孩子
因为二叉树有左孩子、右孩子之分,故一棵树转换为二叉树后,这棵二叉树的形态是唯一的。
A. 250
B. 254
C. 500
D. 501
设度为0的结点为a,
度为1的结点为b,
度为2的结点为c,
由性质3:a=b+1
a+b+c = 1001
2c + b =1000
完全二叉树的性质:b = 0 或 1
c = 500 a=501
A. 10
B. 11
C. 11至1025之间
D. 10至1024之间
若每层仅有一个结点,则树高h为1025;
且其最小树高为[ log₂1025] + 1=11,即h在11至1025之间。
A. 指向最左孩子
B. 指向最右孩子
C. 为空
D. 非空
利用二叉链表存储树时,右指针指向兄弟结点,因为根节点没有兄弟结点,故根节点的右指针指向空。
A. 先序
B. 中序
C. 后序
D. 从根开始按层次
A. 41
B. 82
C. 113
D. 122
A. 双亲表示法
B. 孩子链表表示法
C. 孩子兄弟表示法
D. 顺序存储表示法
A. 所有的结点均无左孩子
B. 所有的结点均无右孩子
C. 只有一个叶子结点
D. 是任意一棵二叉树
因为先序遍历结果是“中左右”,
后序遍历结果是“左右中”,
当没有左子树时,就是“中右”和“右中”;
当没有右子树时,就是“中左”和“左中”。
则所有的结点均无左孩子或所有的结点均无右孩子均可
所以A、B不能选,属于半对
又所有的结点均无左孩子与所有的结点均无右孩子时,均只有一个叶子结点,故选C。
A. 99
B. 100
C. 101
D. 102
哈夫曼树中没有度为1的结点,只有度为0(叶子结点)和度为2的结点。
设叶子结点的个数为n,度为2的结点的个数为n₂,
由二叉树的性质n = n₂+1,
n₂ = n - 1
则总结点数 N = n + n₂ = 2*n - 1,得到 n=100。
A. X的双亲
B. X的右子树中最左的结点
C. X的左子树中最右结点
D. X的左子树中最右叶结点
A. 加快查找结点的前驱或后继的速度
B. 为了能在二叉树中方便地进行插入与删除
C. 为了能方便地找到双亲
D. 使二叉树的遍历结果唯一
A. n−1
B. n
C. n+1
D. n+2
(15)n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是( A )。
A. 该树一定是一棵完全二叉树
B. 树中一定没有度为1的结点
C. 树中两个权值最小的结点一定是兄弟结点
D. 树中任一非叶结点的权值一定不小于下一层任一结点的权值
排除法
哈夫曼树的构造过程是每次都选取权值最小的树作为左右子树构造一棵新的二叉树
所以树中一定没有度为1的结点
两个权值最小的结点一定是兄弟结点
任一非叶结点的权值一定不小于下一层任一结点的权值。
(1)试找出满足下列条件的二叉树。
① 先序序列与后序序列相同。
② 中序序列与后序序列相同。
③ 先序序列与中序序列相同。
④ 中序序列与层次遍历序列相同。
(2)设一棵二叉树的先序序列:A B D F C E G H ,中序序列:B F D A G E H C。
① 画出这棵二叉树。
② 画出这棵二叉树的后序线索树。
③ 将这棵二叉树转换成对应的树(或森林)。
(3)假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。
① 试为这8个字母设计哈夫曼编码。
② 试设计另一种由二进制表示的等长编码方案。
② 试设计另一种由二进制表示的等长编码方案。
③ 对于上述实例,比较两种方案的优缺点。
(4)已知下列字符A、B、C、D、E、F、G的权值分别为3、12、7、4、2、8,11,试填写出其对应哈夫曼树HT存储结构的初态和终态。
以二叉链表作为二叉树的存储结构,编写以下算法:
(1)统计二叉树的叶结点个数。
(2)判别两棵树是否相等。
(3)交换二叉树每个结点的左孩子和右孩子。
(4)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。
(5)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。(6)用按层次顺序遍历二叉树的方法,统计树中度为1的结点数目。
(7)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
(8)输出二叉树中从每个叶子结点到根结点的路径。