- 14
- 0
- 约5.99千字
- 约 12页
- 2016-12-30 发布于江西
- 举报
哈夫曼编码译码器数据结构C语言25074
站在新起点,迎接新挑战,创造新成绩。
一、需求分析
目前
进行快速远距离通信的主要手段是电报
即将需传送的文字转化成由二级制的字符组成的字符串
例如
假设需传送的电文为ABACCDA
它只有4种字符
只需两个字符的串
便可以分辨
假设A、B、C、D、的编码分别为00
01
10和11
则上述7个字符的电文便为00010010101100
总长14位
对方接受时
可按二位一分进行译码
当然
在传送电文时
希望总长尽可能地短
如果对每个字符设计长度不等的编码
且让电文中出现次数较多的字符采用尽可能短的编码
则传送电文的总长便可减少
如果设计A、B、C、D的编码分别为0
00
1
01
则上述7个字符的电文可转换成总长为9的字符串000011010
但是
这样的电文无法翻译
例如传送过去的字符串中前4个字符的字串0000就可以有很多种译法
或是AAAA或者BB
或者ABA等
因此
若要设计长短不等的编码
则必须是任一字符的编码都不是另一个字符的编码的前缀
这种编码称作前缀编码
然而
如何进行前缀编码就是利用哈夫曼树来做
也就有了现在的哈夫曼编码和译码
二、概要设计
利用哈夫曼树编/译码
(一)、建立哈夫曼树
(二)、对哈夫曼树进行编码
(三)、输出对应字符的编码
(四)、译码过程
主要代码实现:
struct code //结构体的定义
{
char a
原创力文档

文档评论(0)