哈夫曼编码
哈夫曼编码
1.前言:
Haffman算法是个简单而高效的贪心算法,主要用来创建最优二叉树.可以在通讯时,对于
出现频率较高的字符,用较少的比特数便可以进行通讯.从而节省通讯线路的资源消耗。该算法在各类数据结构,算法,组合数学,离散数学,图论等主题的书籍中都有所涉及。故本文不再赘述,本文致力于用Haffman算法实现压缩与解压缩,采用的语言为C语言,编译环境VC++6.0.
下面给出[1]中实现的Haffman树的结构及创建算法,有两点说明:
这里的Haffman树采用的是基于数组的带左右儿子结点及父结点下标作为存储结点的二叉树形式,这种空间上的消耗带来了算法实现上的便捷。
由于对于最后生成的Haffman树,其所有叶子结点均为从一个内部树扩充出去的,所以,当外部叶子结点数为m个时,内部结点数为m-1.整个Haffman树的需要的结点数为2m-1.
2压缩过程的实现:
压缩过程的流程是清晰而简单的:
1创建Haffman树à2打开需压缩文件à3将需压缩文件中的每个ascii码对应的haffman编码按bit单位输出à4文件压缩结束。
其中,步骤1和步骤3是压缩过程的关键。
步骤1:这里所要做工作是得到Haffman数中各叶子结点字符出现的频率并进行创建.
统计字符出现的频率可以有很
您可能关注的文档
- 国学汇演主持词 .docx
- 国有企业税务筹划之我见.docx
- 国有商业银行固定资产管理的现状与对策.docx
- 国有土地房屋征收与补偿格式文书.docx
- 国有资产管理体制.docx
- 国有资产管理体制改革.docx
- 国有资产管理制度.docx
- 国有资产置换协议.docx
- 果酒和果醋的制作试卷.docx
- 果酒与果醋制作实验报告课件.docx
- Adobe-Premiere-Pro视频剪辑软件从入门到精通全教程.docx
- 审计专业技术资格考试审计理论与实务复习题集精讲.docx
- 智慧城市系统集成合同协议(2025年年度).docx
- 学校高质量发展,校长论坛发言:育好教育生态,走好高质量发展路.docx
- 高校党团班协同运行机制与班集体凝聚力建设路径.docx
- 前端开发HTML5CSS3JavaScript从入门到项目实战全攻略.docx
- 网络小说写作技巧大纲设定与签约出版全流程指导.docx
- 高校校园贷风险防范与大学生理性消费观培育引导.docx
- 在XX市生态环境保护重点任务攻坚推进会议上的讲话.docx
- 废旧玻璃回收厂的污染分析.docx
原创力文档

文档评论(0)