更新时间:2023-06-01 21:20
前缀编码 是指对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,例如:设有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