第6章 树和二叉树(4.18).ppt

例:字符串‘ABACCDA’ 设A、B、C、D编码分别为00、01、10、11,则编码为14位‘00010010101100’ ,对方接收时将其译码。如设A、B、C、D编码分别为0、00、1和01,则上述7个字符转换成总长为9位‘000011010’,但是这样的电文无法译码。‘0000’可有多种译法‘AAAA’或‘ABA’、‘BB’ 。 前缀编码:任一个字符的编码都不是另一个字符编码的前缀。 可利用二叉树设计前缀编码 怎么进行不等长编码? 如何避免二义性? 二叉树用于编码 用二叉树进行编码: (1)左右分支:0、1 (2)字符只在叶子结点上 例:字符串‘ABACCDA’ 字符频率:A:3, B:1, C:2, D:1 A B C D 0 0 0 1 1 1 WPL=3*2+1*2+2*2+1*2=14 A B C D 0 0 0 1 1 1 如何构造一棵编码代价最小的二叉树? 哈夫曼树 A:1 B:000 C:01 D:001 WPL=3*1+1*3+2*2+1*3 =13 例:要传送数据 state、seat、act、tea、cat、set、a、eat,如何使传送的长度最短? 为了保证长度最短,先看字符出现的次数,然后将出现次数当作权。为保证传送词间互相区别,则需加入一空白字符,空白字符^出

文档评论(0)

1亿VIP精品文档

相关文档