有趣算法:Huffman Decoding:

    xiaoxiao2026-04-03  7

    介绍:

    给固定长度的输入字符,根据他们的使用频率分配不固定长度的二进制编码.

    例子:

    如:字符串:"ABACA",其中A的频率是3,B和C的频率都是1 1.根据频率生成一颗Huffman Tree如下: {$,5} 0/ \1 {$,2} {A,3} 0/ \1 {B,1} {C,1} 2.那么给出任意的二进制编码后的数据,都可以解码生成原数据: 假设:收到str='110001'这个数据. 开始解码: '1':(i)从root向右子节点移动,获得A '1':同上(i)获得A '0':(ii)从root向左子节点移动,data=$,非叶子节点,继续判断下一位. '0':从(ii)判断向左子节点移动,得到B '0':(iii)从root向左子节点移动,data=$,判断下一位. '1':从(iii)向右子节点移动,data=C,获得C 输出结果:AABC
    转载请注明原文地址: https://ju.6miu.com/read-1308475.html
    最新回复(0)