1、哈夫曼编码器 I 摘 要 在数据通信中,经常需要将传送的文字转换成二进制字符 0 和 1 组成的二进制代 码,而这称之为编码。如果在编码时考虑字符出现的频率,让出现频率高的字符采用尽 可能短的编码,出现频率低的字符采用稍长的编码,构成一种不等长的编码,则电文的 代码就可能更短。哈夫曼是一种用于构造使电文的编码总长最短的编码方案。 关键词:哈夫曼编码 数据通信 电文 频率 二进制 哈夫曼编码器 II 目 录 1 哈夫曼编码器 1 1.1 设计目的 1 1.2 设计要求 1 2 问题的描述与解决 .2 3 哈夫曼编码器的概要设计 5 3.1 结构图 .5 3.2 概要设计介绍 .5 4 结果显示及
2、说明 .7 4.1 结果显示 7 4.2 执行方法说明 .9 5 小结 . 10 参考文献参考文献 11 附录附录 . 12 哈夫曼编码器 1 1 哈夫曼编码器 数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构, 以及对数据的各 种操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数 据的操作(或算法)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数 据的物理存储结构。数据结构是信息的一种组织方式,其目的是为了提高算法的效率, 它通常与一组算法的集合相对应, 通过这组算法集合可以对数据结构中的数据进行某种 操作。 在当今信息时代,信息技术己成为当代知识经
3、济的核心技术。我们时刻都在和数 据打交道。比如人们在外出工作时找最短路径,在银行查询存款、通过互联网查新闻、 以及远程教育报名等,所有这些都在与数据发生关系。实际上,现实世界中的实体经过 抽象以后,就可以成为计算机上所处理的数据。 数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对 象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件 之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原 理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。 1.1 设计目的 (1)复习并灵活掌握二叉树的各种存储结构和遍历方法 (2
4、)了解静态链表,并掌握其构造方法 (3)掌握哈夫曼树的构造过程和哈夫曼编码的求解方法 (4)复习并掌握文件读写的基本方法 1.2 设计要求 (1)结点的权值由人工输入,输入保存至文件中 (2)求得的哈夫曼编码及 WPL 也必须写入编码文件中 (3)哈夫曼树的存储可以采用静态链表或二叉链表 哈夫曼编码器 2 2 问题的描述与解决 问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时 间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在 接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道), 每端都需要一个完整的编/译码系统。 试为这样的信息收发站写一个哈夫曼码的编/译码 系统。 程序设计包含的几个方面:哈夫曼树的建立,哈夫曼树的编译,求 WPL 哈夫曼树的建立由哈夫曼算法的定义可知, 初始森林