电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

哈夫曼编码译码课程设计报告

哈夫曼编码译码课程设计报告_第1页
1/21
哈夫曼编码译码课程设计报告_第2页
2/21
哈夫曼编码译码课程设计报告_第3页
3/21
《 数据结构 》课程设计 ——赫夫曼编码/译码器设计 指导教师:李文书、周维达 班级:10 电信实验班 学号:Q ******** 姓名:*** 1 一、实验目的 1、提高分析问题、解决问题的能力,进一步巩固数据结构各种原理与方法。 2、熟悉掌握一门计算机语言,可以进行数据算法设计。 二、实验原理 哈夫曼编\译码器的主要功能是先建立哈夫曼树,然后利用建好的哈夫曼树生成哈夫曼编码后进行译码 。 在数据通信中,经常需要将传送的文字转换成由二进制字符0、1 组成的二进制串,称之为编码。构造一棵哈夫曼树,规定哈夫曼树中的左分之代表 0,右分支代表 1,则从根节点到每个叶子节点所经过的路径分支组成的 0 和 1 的序列便为该节点对应字符的编码,称之为哈夫曼编码。 最简单的二进制编码方式是等长编码。若采用不等长编码,让出现频率高的字符具有较短的编码,让出现频率低的字符具有较长的编码,这样可能缩短传送电文的总长度。哈夫曼树课用于构造使电文的编码总长最短的编码方案。 主要流程图如下: 开始 结点数是否大于1 将data 和权值赋给ht 输出根结点和权调用SELECT 函数 计算根结点函父结点为两子结点之和 输出两子结点和已构造的是否为根结点? 左子是否为空? 此时编码为0 I<2*N? I++ 编码为1 结束 否 否 否 右子是否为是 是 否 否 是 是 是 2 三、实验步骤 1:写好流程图,设计实验方案。 2:初始化,从终端读入字符集大小 n,以及 n 个字符和 n 个权值,建立哈夫曼树,并将它存于文件 HuofumanTree 中。 3:编码。利用已建好的哈夫曼树,对文件 ToBeTran 中的正文进行编码,然后将结果存入文件 CodeFile 中。 4:译码。利用已建好的哈夫曼树将文件 CodeFile 中的代码进行译码,结果存入文件 Textfile 中。 5:印代码文件(Print).将文件 CodeFile 以紧凑格式显示在终端上,每行 50 个代码。同时将此字符形式的编码文件写入文件 CodePrint 中。 6:印哈夫曼树(Treeprinting).将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的哈夫曼树写入文件 TreePrint 中。 具体函数如下: 1:Initialization() 初始化 2:Encoding() 编码 3:Decoding() 译码 4:Print_file() 打印代码文件 5:search(k,j,p) 搜索二叉树 6:Print_tree() 打印二叉树 7:menu() 主菜单 9:main() 主函数 四、实验结果与分析 (1 )大...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

哈夫曼编码译码课程设计报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部