1. 背景
在通讯、计算机网络、数据压缩、图像处理中,哈夫曼编码是一项极其重要的技术。哈夫曼编码是建立在二叉哈夫曼树的基础上,如果能够找到比二叉哈夫曼树更好的数据结构,那么对数据压缩等将起到促进作用。本文通过论述二叉哈夫曼树编码算法以及普通的三叉哈夫曼树编码算法,给出一种优化的三叉哈夫曼编码算法。
2. 哈夫曼编码
2.1 哈夫曼编码
哈夫曼编码是根据每个字符出现的频率进行编码的,依据字符出现的频率值构造一颗哈夫曼树,从而实现最短的编码表示高频数据。
2.2 二叉哈夫曼树生成算法
对于给定的数据序列,要生成带权路径长度最小的树,即哈夫曼树,算法如下:
(1)初始化:根据给定的N个权值{W1,W2,W3…Wn}构成n棵二叉树的集合F={T1,T2,T3,…Tn},其中每颗二叉树中只有一个权值为Wi的根结点,左右子树为空;
(2)选取与合并:在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,并将新的二叉树的根结点的权值为左右子树的根结点的权值之和;
(3)删除与加入:在F中删除两棵子树,同时将新的二叉树加入到F中;
(4)重复:重复(2)、(3),直到F只含一棵子树。
带权路径长度:WPL=6*6+(5+8+9)*5+(10+18+12+15)*4+(24+25+20+32+30)*3 =759

最低0.47元/天 解锁文章
2321





