-
实验目的
熟悉掌握Huffman树的构造方法及Huffman编码的应用,了解Huffman树在通信、编码领域的应用过程。
-
实验内容
(1)输入一段100—200字的英文短文,存入一文件a中。
(2)写函数统计短文出现的字母个数n及每个字母的出现次数
(3)写函数以字母出现次数作权值,建Haffman树(n个叶子),给出每个字母的Haffman编码。
(4)用每个字母编码对原短文进行编码,码文存入文件b中。
(5)用Haffman树对文件b中码文进行译码,结果存入文件c中,比较a,c是否一致,以检验编码、译码的正确性。
-
问题描述
(说明你选做的题目及要求)
输入一段100—200字的英文短文,存入一文件a中。写函数统计短文出现的字母个数n及每个字母的出现次数写函数以字母出现次数作权值,建Haffman树(n个叶子),给出每个字母的Haffman编码。用每个字母编码对原短文进行编码,码文存入文件b中。用Haffman树对文件b中码文进行译码,结果存入文件c中,比较a,c是否一致,以检验编码、译码的正确性。
-
数据结构定义
(说明你算法中用到的数据结构、数据类型的定义)
定义哈夫曼树对于每个节点而言,既然需要双亲的信息,又需要知道孩子结点的信息。,每一个结点用结构体定义,里面包含此结点的权值weight,父结点parent,左孩子lchild,右孩子rchild。
Typedef struct{
Unsigned int weight;
Unsigned int parent ,lchild,rchild;
};HTNode, *Huffmantree;
Typedef char * *HuffmanCode;
-
算法思想及算法设计
(先文字说明算法的思想,然后给出类C语言算法)

本文介绍了一种基于哈夫曼树的编码方法实现过程,包括构建哈夫曼树、生成编码、编码与译码等步骤。通过具体的C语言程序实现了对一段英文短文的编码与解码。

3859

被折叠的 条评论
为什么被折叠?



