前缀编码
对字符集进行编码时要求字符集中任一字符的编码都不是其它字符的编码的前缀
前缀编码 是指对
字符集
进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,例如:设有
abcd
需要
编码表示
(其中,a=0、b=10、c=110、d=11,则110的前缀表示的可以是c或者是d跟a,出现这种情况是因为d的前缀11与c的前缀110有重合部分,这个是关键。)
构造方法
二叉树
:约定左分支表示字符‘0’,右分支表示字符‘1’,则可以用从
根结点
到
叶子结点
的路径上的分支
字符串
作为该叶子结点字符的编码。如此得到的编码必是前缀编码。
哈夫曼编码
用构造
哈夫曼树
的
过程生成
的
二进制
前缀编码。哈夫曼树是一类带权
路径长度
最短的树。
特点:带权路径长度最短
应用
·ABFACGCAHGBBAACECDFGFAAEABBB
1.统计:A(8) B(6) C(4) D(1) E(2) F(3) G(3)H(1)
2.构造Huffman树
3.得到Huffman编码
A: 01
B: 11
C: 001
D:00000
E: 0001
F: 100
G: 101
H:00001
字符串新编码长度:8*2+6*2+4*3+1*5+2*4+3*3+3*3+1*5=76
参考资料
最新修订时间:2023-06-01 21:20
条目作者
小编
资深百科编辑
目录
概述
构造方法
哈夫曼编码
应用
参考资料
Copyright©2024
闽ICP备2024072939号-1