实验六 Huffman树及Huffman编码的算法实现

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

  1. 实验目的

熟悉掌握Huffman树的构造方法及Huffman编码的应用,了解Huffman树在通信、编码领域的应用过程。

  1. 实验内容

(1)输入一段100—200字的英文短文,存入一文件a中。

(2)写函数统计短文出现的字母个数n及每个字母的出现次数

(3)写函数以字母出现次数作权值,建Haffman树(n个叶子),给出每个字母的Haffman编码。

(4)用每个字母编码对原短文进行编码,码文存入文件b中。

(5)用Haffman树对文件b中码文进行译码,结果存入文件c中,比较a,c是否一致,以检验编码、译码的正确性。

  1. 问题描述

    (说明你选做的题目及要求

输入一段100—200字的英文短文,存入一文件a中。写函数统计短文出现的字母个数n及每个字母的出现次数写函数以字母出现次数作权值,建Haffman树(n个叶子),给出每个字母的Haffman编码。用每个字母编码对原短文进行编码,码文存入文件b中。用Haffman树对文件b中码文进行译码,结果存入文件c中,比较a,c是否一致,以检验编码、译码的正确性。

  1. 数据结构定义

    (说明你算法中用到的数据结构、数据类型的定义

定义哈夫曼树对于每个节点而言,既然需要双亲的信息,又需要知道孩子结点的信息。,每一个结点用结构体定义,里面包含此结点的权值weight,父结点parent,左孩子lchild,右孩子rchild。

Typedef struct{

Unsigned int weight;

Unsigned int parent ,lchild,rchild;

};HTNode, *Huffmantree;

Typedef char  * *HuffmanCode;
  1. 算法思想及算法设计

    (先文字说明算法的思想,然后给出类C语言算法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值