- 1
- 2
- 3
- 4
- 5
哈夫曼树代码实现
资料介绍
1、哈夫曼编码
在数据通信中,需要将传送的文字转换成二进制的字符串,用0,1码的不同排列来表示字符。例如,需传送的报文为“AFTER DATA EAR ARE ART AREA”,这里用到的字符集为“A,E,R,T,F,D”,各字母出现的次数为{8,4,5,3,1,1}。现要求为这些字母设计编码。要区别6个字母,最简单的二进制编码方式是等长编码,固定采用3位二进制,可分别用000、001、010、011、100、101对“A,E,R,T,F,D”进行编码发送,当对方接收报文时再按照三位一分进行译码。显然编码的长度取决报文中不同字符的个数。若报文中可能出现26个不同字符,则固定编码长度为5。然而,传送报文时总是希望总长度尽可能短。在实际应用中,各个字符的出现频度或使用次数是不相同的,如A、B、C的使用频率远远高于X、Y、Z,自然会想到设计编码时,让使用频率高的用短码,使用频率低的用长码,以优化整个报文编码。
为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下,于是频率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。因此,求传送报文的最短长度问题转化为求由字符集中的所有字符作为叶子结点,由字符出现频率作为其权值所产生的哈夫曼树的问题。利用哈夫曼树来设计二进制的前缀编码,既满足前缀编码的条件,又保证报文编码总长最短。行
部分文件列表
文件名 | 大小 |
哈夫曼树.cpp | 2KB |
最新上传
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:小猫做电路
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:liqiang9090
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏160.00元 3天前
用户:w1966891335
-
21ic下载 打赏160.00元 3天前
用户:w178191520
-
21ic下载 打赏160.00元 3天前
用户:kk1957135547
-
21ic下载 打赏40.00元 3天前
用户:WK520077778
-
21ic下载 打赏40.00元 3天前
用户:sun2152
-
21ic下载 打赏30.00元 3天前
用户:xuzhen1
-
21ic下载 打赏50.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏30.00元 3天前
用户:xzxbybd
-
21ic下载 打赏40.00元 3天前
用户:z00
-
21ic下载 打赏40.00元 3天前
用户:forgot
-
21ic下载 打赏40.00元 3天前
用户:happypcb
-
21ic下载 打赏20.00元 3天前
用户:zhaoqshan
-
21ic下载 打赏5.00元 3天前
用户:17724187683
-
21ic下载 打赏5.00元 3天前
用户:zmm1818
-
21ic小能手 打赏15.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
chenruiji 打赏1.00元 3天前
资料:血糖仪原理图
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:测试智能语音控制模块
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
cai0603 打赏3.00元 3天前
用户:CJQ_ENJOY
-
21ic小能手 打赏5.00元 3天前
全部评论(0)