没有合适的资源?快使用搜索试试~ 我知道了~
哈夫曼编码译码的设计实现分析.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 191 浏览量
2021-10-06
08:16:59
上传
评论
收藏 165KB DOC 举报
温馨提示
试读
23页
哈夫曼编码译码的设计实现分析.doc
资源推荐
资源详情
资源评论
- -
软件学院
课程设计报告
设计名称: 数据构造课程设计
选题名称: 哈夫曼编码 译码的设计与实现
姓 名:学 号:
专业班级: 移动 一 班
系 〔院〕: 软件学院
设计时间:
- - word.zl-
- -
目 录
一、需求分析
二、系统设计
三、程序流程图
四、实现代码
五、总结
六、参考书目
- - word.zl-
- -
一、需求分析
哈夫曼编码是一种应用广泛且非常有效的数据压缩技术,哈夫曼编码是一种编码方式,以哈夫曼树,带权
路径长度最小的二叉树,经常应用于数据压缩。哈夫曼编码使用一特殊的编码表将源字符进展编码。这编
码表的特殊在于,它是根据每一个源字符出现的估算概率而建立起来的。哈夫曼编码的应用很广泛,利用
哈夫曼树求得的用于通信的二进制编码成为哈夫曼编码,树中从根到每个叶子都有一条路径,对路径上的
各分支约定:指向左子树的分支表示“〞码,指向右子树的分支表示“〞码,取每条路径上的“〞或“〞
的序列作为和各个叶子对应的字符的编码,这就是哈夫曼编码。哈夫曼译码输入字符串可以把它编译成二
进制代码。输入二进制代码时可以编译成字符串。
二、系统设计
构造哈夫曼树时,使用静态链表作为哈夫曼树的存储。
在构造哈夫曼树时,设计一个构造体数组 保存哈夫曼树中各结点的信息,根据二
叉树的性质可知,具有 个叶子结点的哈夫曼树共有 个结点,所以数组 的
大小设置为 ,
求哈夫曼编码时使用一维构造数组 作为哈夫曼编码信息的存储。
求哈夫曼编码实际上就是在已建立的哈夫曼树中,从叶子结点开场,沿结点的双亲链域回退
到根结点,每回退一步,就走过了哈夫曼的一个分支,从而得到一位哈夫曼编码值。由于一
个字符的哈夫曼编码就是从根结点到相应叶子结点所经过的路径上各分支所组成的 、 序
列,因此先得到的分支代码为所求编码的低位码,后得到的分支代码为所求的高位码
、初始化功能模块
此功能模块的功能为从键盘承受字符集大小 ,以及 个字符和 个权值。
、建立哈夫曼编码的功能模块
此模块功能为使用 中得到的数据按照教材中的构造哈弗曼的算法构造哈弗曼树,即将
数组中的各个位置的各个域都填上相关的值,并将这个构造体数组存于文件
中。
函数原型为:
!"#$% !"&#'(
)*(
))+)+(
,$(-#(..
&'%/0$(
&'"$(
&'1201$(
- - word.zl-
- -
&'201$(
&',$33(
4
,$(-(..
2--5请输入字符5--1(
266&',(
2--5请输入该字符的权值5--1(
266&'%/0(
4
,$(-(..构造哈夫曼树
$$7+1(
+$+$(
,*$(*-.(*..选取最小和次小
,&*'"$$&*'%/0-
$(
+$+(
$&*'%/0(
+$*(
4
18
,&*'"$$&*'%/0-
$&*'%/0(
+$*(
4
4
4
将找出的最小和次小合并,创造其父母结点
&+'"$.(
&+'"$.(
&.'%/0$&+'%/0.&+'%/0(
&.'1201$+(
&.'201$+(
&.',$9::(
4
2--5显示存储的哈弗曼树信息;5--1(
2--5权值左孩子右孩子双亲5--1(
,$(-#(..
2--&',--55(
2--&'%/0--55(
- - word.zl-
- -
2--&'1201--55(
2--&'201--55(
2--&'"--1(
4
写入文件
,8<1(
<1"5=;>>5)8;;?8;;2?8;;@!(建立进展写入
的文件
,A<1没有创立成功那么显示相应信息
2--5 文件不能翻开5--1(
@(
4
,$(-#(..将存中从 &'地址开场的 8B,&'的容
写入文件中
<1%20#&')8B,&'(
<1218(关闭文件
1&'(
4
、建立哈弗曼编码功的功能模块
此模块功能是从文件 中读入相关的字符信息进展哈弗曼编码,然后将结果存
入 2 中,同时将字符与 和 代码串的一一对应关系显示到屏幕上。
函数原型为:
哈夫曼编码
!"#$% !"&7+'(
2 !"#$%2 !"&7+1,'(
2 !"2(
)*)2)"(
,85=;>>5)8;;?8;;@!(
20#)##8B, !"(
218(
,8<1(
<1"5=;>>25)8;;?8;;@!(建立进展写入的文件
,$(-(..
28$(
2$(
"$&2'"(
%01"A$
- - word.zl-
剩余22页未读,继续阅读
资源评论
gjmm89
- 粉丝: 14
- 资源: 19万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功