- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈夫曼编码译码课程设计报告
《 数据结构 》课程设计
——赫夫曼编码/译码器设计
指导教师:李文书、周维达
班级:10电信实验班
学号:姓名:王彬彬
一、实验目的
提高分析问题、解决问题的能力,进一步巩固数据结构各种原理与方法。
熟悉掌握一门计算机语言,可以进行数据算法设计。
二、实验原理
哈夫曼编\译码器的主要功能是先建立哈夫曼树,然后利用建好的哈夫曼树生成哈夫曼编码后进行译码 。
在数据通信中,经常需要将传送的文字转换成由二进制字符0、1组成的二进制串,称之为编码。构造一棵哈夫曼树,规定哈夫曼树中的左分之代表0,右分支代表1,则从根节点到每个叶子节点所经过的路径分支组成的0和1的序列便为该节点对应字符的编码,称之为哈夫曼编码。
最简单的二进制编码方式是等长编码。若采用不等长编码,让出现频率高的字符具有较短的编码,让出现频率低的字符具有较长的编码,这样可能缩短传送电文的总长度。哈夫曼树课用于构造使电文的编码总长最短的编码方案。主要流程图如下:
实验步骤
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)大致个人测试案例:
主界面:
初始化:
Huofuman.txt初始化存入文件结果如下:
编码结果如下:
codefile.txt编码存入文件如下:
译码结果如下:
textfile.txt译码存入文件如下:
打印结果如下:
打印树结果如下:
treeprint.txt存入文件结果如下:
本例测试案例_1
已知某系统在通信联络中只可能出现八种字符,其频率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计哈夫曼编码。
解:
假设八种字符为ABCDEFGH,将各个概率乘以100可得权值为5 29 7 8 14 23 3 11
启动程序,测试得:
初始化:
编码:
译码打印结束:
(3)本例测试案例_2
用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAME IS MY FAVORITE”。
字符 A B C D E F G H I J K L M 频度 188 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1
解:
先假设空格为#,所以输入字符时,将空格变为#。
输入如下:
先将从空格到Z输入权值
然后对字符进行编码:
空格到Z译码
然后输入字符串并编码:
保存到Codefile.txt中
然后将开始译码并结束
将译码结果保存到Textfile.txt中
实验总结
从这个课程设计中,我发现了很多问题,包括文件存储,字符串输入等等,最主要的是经历了一次找BUG的过程,当把自己写的代码里的错误一个一个找出来时,是非常非常兴奋的。还是希望能有多这个经历。不喜欢copy,如果copy了,就缺少了一次挑战自己的经历。
六、主要代码
// Huffman_2.cpp : Defines the entry point for the console application.
//
#include stdafx.h
#include stdio.h
#include stdlib.h
#include string.h
#include math.h
#def
您可能关注的文档
- 各岗位职责、工作内容及标准.doc
- 各电子商务平台收费标准.doc
- 各种宴会祝酒词集锦.doc
- 各种接口传输速率汇总.doc
- 各类火灾的扑救方法及注意事项.doc
- 各类锅炉计算方法汇总.doc
- 各种纸盒折法图纸分享.doc
- 各色丙烯酸烘干磁漆企业标准.doc
- 各行业工艺流程示意图.doc
- 合同审计管理制度----采购.doc
- 中国国家标准 GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- 《GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法》.pdf
- GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/T 32455-2024航天术语 运输系统.pdf
- GB/T 32455-2024航天术语 运输系统.pdf
- 《GB/T 32455-2024航天术语 运输系统》.pdf
- GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
- 中国国家标准 GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
最近下载
- 溶胶—凝胶先驱体法制备纳米碳化物材料研究-study on preparation of nano-carbide materials by sol-gel precursor method.docx
- 浅谈蒙古族舞蹈的审美特征 以舞蹈作品国家的孩子为例.docx
- 华为5G4期设备详细产品介绍.xlsx
- 精选山东省济南市2024年中考化学真题试题(含解析).(数理化网).doc
- 2024年上海高考化学试卷及答案解析版.doc
- 浅谈舞蹈国家的孩子的艺术审美特征.docx
- OWC11控件的安装.doc
- 本科教学工作合格评估指标体系内涵解读.ppt
- 涂装集中输调漆系统.docx
- 集中输调漆系统.pdf
文档评论(0)