霍夫曼树(最优二叉树)简介
来源:互联网 发布:武警待遇 知乎 编辑:程序博客网 时间:2024/06/08 07:59
一、霍夫曼编码
说到霍夫曼树,就不得不提霍夫曼编码(Huffman Coding)。霍夫曼编码是可变字长编码(VLC)的一种。David.A.Huffman于1952年提出该编码方法,即完全依据字符出现概率来构造异字头的平均长度最短的码字,亦称之为最佳编码。
在数据通信中,需要将传送的文字转换成二进制的字符串,用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,自然会想到设计编码时,如果能让出现频率高的字符的编码长度减少,频率低的字符编码长度 长于 频率高的。这样整个信息的编码长度会减少,并且能区分出不同的字符。
为了实现这种更高效的编码方式,就需要利用一个二叉树的结构来进行辅助编码,这种二叉树即为霍夫曼树,也称作最优二叉树。来实现一个字符的编码不是另一个字符编码的前缀。
二、霍夫曼树的定义与算法描述
在说明霍夫曼树之前,需要介绍几个术语。
所谓赫夫曼树,就是带权路径长度之和WPL最小的那个二叉树。(因此也叫作最优二叉树)
例如
三、霍夫曼编码的实现
http://blog.csdn.net/feynman1999/article/details/71178357
- 霍夫曼树(最优二叉树)简介
- 最优二叉树(霍夫曼树)分析
- 霍夫曼树及其应用(最优二叉树)
- 霍夫曼树(哈夫曼树)(最优二叉树…
- 哈夫曼树(最优二叉树)
- 哈夫曼树(最优二叉树)
- 最优二叉树(哈夫曼树)
- 哈夫曼(最优二叉树)
- 哈弗曼树(最优二叉树)
- 哈夫曼树(最优二叉树)
- 最优二叉树(哈夫曼树)
- 最优二叉树(或者最优树)的建立过程
- 树之哈夫曼树(最优二叉树)
- 树:哈夫曼树(最优二叉树)
- 单词树(最优二叉树)
- 最优二叉查找树(optimal BST)
- 最优二叉查找树(动态规划)
- 算法作业(最优二叉查找树)
- linux基础3.7samba
- HTTP协议—— 简单认识TCP/IP协议
- 关于xtream的序列化及反序列化
- Android 自定义View汇总,Demo
- 复信号的调制与解调(基带)
- 霍夫曼树(最优二叉树)简介
- np.random.choice 参数replace
- linux基础3.10firewalld
- 图解说明——究竟什么是Windows句柄
- C++回炉(3)
- 像素鸟(flapybird)的简单实现
- iOS 关于应用内跳转的问题
- 笔记本安装win10后 无线网卡驱动无法安装 问题的解决
- Apache Kylin介绍