试题
考点

数据结构-树和森林-赫夫曼树

面5笔5

哈弗曼编码是一种无损二进制熵编码算法,其加权路径长度最小,字符串“alibaba”的二进制哈弗曼编码有___位(bit)

A.11

B.12

C.13

D.14

前往“校大”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

正确答案是 C

各字符出现的频率分别为: a (3), b (2), l (1), i (i)。

构造哈夫曼树:
        7
     /     \
(1)4      a(0)
   /  \
 2     b
/ \
l  i

a: 0         
b: 10
l: 111
i: 110

alibaba编码长度为:  1+3+3+2+1+2+1 = 13

评论

阿然

2022-01-26 23:00:00

0 0

假期

2021-02-01 23:52:28

0 0

期待

2021-02-01 11:09:10

0 0

先锋

2018-10-13 11:45:57

构造哈弗曼树:

1、首先a(3)、b(2)、i(1)、l(1)分别单独构成一个树(节点),节点的权重是字符出现的频率;
2、先将权重最小的两个节点结合组成一个新的节点(新节点的权重为子节点的权重之和),然后依次这样进行,最终所有的节点组成一个树;
3、对于每个节点,其左边值为0,右边值为1;所有的叶节点均为文本中出现的字符。
   weight(2)                                     weight(4)                                         weight(7)                                 
                                                      0/            \1                                           0/    \1
     0 /   \ 1                ->    weight(2)                  b(2)     ->                   weight(4)    a(3)
                                       0 /   \1                                                            0/   \1
     l(1) i(1)                     l(1)    i(1)                                              weight(2)    b(2)
                                                                                                        0 /  \1
                                                                                                       l(1)   i(1)

所以,对于a/b/l/i 他们对应的霍夫曼编码
a:1;
b:01;
i :001;
L:000;

长度:1+3+3+2+1+2+1=13

0 0

加载更多