数据结构与算法(周测3-Huffman树)

判断题

1.Given a Huffman tree for N (≥2) characters, all with different weights. The weight of any non-leaf node must be no less than the weight of any node on the next lower level.

    
T
    
F

哈夫曼树的根节点的权重为左右子节点的权重之和。

2.Let C be an alphabet in which each character c in C has frequency c.freq. If the size of C is n, the length of the optimal prefix code for any character c is not greater than n−1.

    
T
    
F

考虑哈夫曼树最不平衡的情况,设根结点为第0层,从第一层开始,到倒数第二层为止,都只有一个叶子结点,倒数第一层有2个叶子结点,整个树向一边倾倒。参考选择题第2题的图。即使是这种最不平衡的情况下,观察每一个字符的最优前缀码,最长也才是字符集个数减1。

3.哈夫曼编码是一种最优的前缀码。对一个给定的字符集及其字符频率,其哈夫曼编码不一定是唯一的,但是每个字符的哈夫曼码的长度一定是唯一的。

    
T
    
F

哈夫曼字符的频率相同时每个字符的码长不是确定的。

选择题

1.对N(N≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是:

    A.树中一定没有度为1的结点

    B.树中两个权值最小的结点一定是兄弟结点

    C.树中任一非叶结点的权值一定不小于下一层任一结点的权值

    D.该树一定是一棵完全二叉树

哈夫曼树是不等长编码,饿如果是完全二叉树,那么就会是等长编码了。

2.由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为:

    A.23

    B.37

    C.44

    D.46

根据图,计算带权路径长度,\(\color{red}{9+7\times2+2\times3+5\times3=44}\)
数据结构与算法(周测3-Huffman树)

3.Given a piece of text which consists of characters {a, b, c, d}, with the frequencies of occurrence being {4, 2, 5, 1}, respectively. How many bits are saved by Huffman code comparing to the equal-length code?

    A.0

    B.2

    C.4

    D.5

设左结点为0,右结点为1。根据图得到编码:a(10),b(110),c(0),d(111)。\(\color{red}{2\times4+3\times2+5+3=22}\)位。而假如采用等长码,需要\(\color{red}{12\times2=24}\)位
数据结构与算法(周测3-Huffman树)

4.哈夫曼树是n个带权叶子结点构成的所有二叉树中()最小的二叉树。

    A.权值

    B.高度

    C.带权路径长度

    D.度

5.关于Huffamn树,如下说法错误的是( )

    A.多于1个叶子结点的Huffman树中不存在度为1的结点

    B.Huffman树中,任意调整结点左右孩子的顺序,不影响带权路径长度

    C.Huffamn树的带权路径长度最大

    D.Huffman树中,权值越大的叶子结点离根结点越近

6.设给定权值总数有n 个,其哈夫曼树的结点总数为( )。

    A.2n

    B.2n+1

    C.2n-1

    D.不确定

哈夫曼树的叶结点个数为给定权值个数,而非叶结点为为叶结点个数减1。

7.设哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。

    A.99

    B.100

    C.101

    D.102

见第6题的分析。

8.Given a set of characters { a, b, c, d, e, f } with their occurrence frequencies being { 6, 3, 8, 2, 10, 4 }, respectively. Which of the following is a correct set of the corresponding Huffman codes?

    A.00, 1011, 01, 1010, 11, 100

    B.00, 100, 110, 000, 0010, 01

    C.10, 1011, 11, 0011, 00, 010

    D.0011, 10, 11, 0010, 01, 000

关于这个问题,首先判断是否是前缀码,排除BC,然后计算分别采用A、D编码的带权路径长度为70和86。

9.设有13个值,用它们构成一棵哈夫曼树,则该哈夫曼树共有结点数是( )。

    A.13

    B.12

    C.26

    D.25

见第6题的分析。

10.以下关于huffman树说法错误的是( )。

    A.一般在huffman树中,权值越大的叶子离根结点越近

    B.huffman树中没有度数为1的分支结点

    C.若初始森林*有n棵二叉树,最终求得的huffman树共有2n-1个结点

    D.若初始森林*有n棵二叉树,进行2n-1次合并后才能剩下一棵最终的huffman树

其实这个问题的D选项就是变相在问合并之后最终的哈夫曼树有多少非叶子结点,这个可见第6题的分析。

11.设一段文本中包含4个对象{a,b,c,d},其出现次数相应为{4,2,5,1},则该段文本的哈夫曼编码比采用等长方式的编码节省了多少位数?

    A.0

    B.2

    C.4

    D.5

同第3题。

12.Construct a Huffman tree from four leaf nodes with weights 9, 2, 5 and 7. Then the weighted path length of this Huffman tree is:

    A.23

    B.37

    C.44

    D.46

同第2题。

13.根据使用频率为5个字符设计的哈夫曼编码不可能是( )。

    A.111,110,10,01,00

    B.000,001,010,011,1

    C.100,11,10,1,0

    D.001,000,01,11,10

直接看是否是前缀码。

14.已知权值集合为{5,7,2,3,6,1,4},计算带权路径长度WPL()。

    A.73

    B.74

    C.75

    D.76

如图,计算带权最短路径\(\color{red}{2\times7+3\times5+3\times4+2\times6+3\times3+4\times2+4=74}\)
数据结构与算法(周测3-Huffman树)

15.对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:

    A.56

    B.57

    C.58

    D.60

见第6题的分析。

上一篇:"a newer version of unity web player is required but the auto-update failed"


下一篇:Android分享到微信时点击分享无反应的问题解决(注意事项)