您的位置:首页 > 其它

有趣算法:Huffman Decoding:

2016-08-16 11:41 176 查看

介绍:

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


例子:

如:字符串:"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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 编码