- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计
实验题目:赫夫曼编码/译码器
班级网络一班
姓名
学号一
指导老师—
成绩
一、 需求分析
利用赫夫曼编码进行通信可以大大提高信道利用率, 缩短信息传输时间,降低传输成
本。这要求在发送端通过一个编码系统对待传输数据预先编码, 在接收端将传来的数据进行
译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编 /
译码系统。试为这样的信息收发站编写一个赫夫曼码的编 /译码系统。
二、 基本要求
基本要求
一个完整的系统应具有以下功能:
I :初始化(Initialization )。从终端读入字符集大小 n,以及n个字符和n个权值,
建立赫夫曼树,并将它存于文件 hfmTree中。
E:编码(Encoding )。利用已建好的赫夫曼树(如不在内存,则从文件 hfmTree中
读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件 CodeFile中。
D :译码(Decoding )。利用已建好的赫夫曼树将文件 CodeFile中的代码进行译码,
结果存入文件Textfile中。
2?测试要求
利用教科书例6-2的数据调试程序:已知某系统在通信联络中只可能出现八种字符, 其频率分别”,””,试设计赫夫曼编码。
用下表给出的字符集和频度的实际统计数据建立赫夫曼树, 并实现以下报文的编码
和译码:“THIS PROGRAME IS MY FAVORITE ”。
字符
A
B
C
D
E
F
G
H
I
J
K
ZL
M
频度
186
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
3.实现提示
编码结果以文本方式存储在文件 Codefile中。
用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“ Q”,表示退出运
行Quit。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单, 直至某次用户选择
了 “ Q”为止。
在程序的一次执行过程中,第一次执行 I, D或C命令之后,赫夫曼树已经在内存
了,不必再读入。每次执行中不一定执行 I命令,因为文件hfmTree可能早已建好。
三、 概要设计
程序主要分为五部分,哈夫曼节点的定义,哈夫曼编码的定义, Select函数
选择出权值最小的节点,Initialization函数生成哈夫曼树,主函数。
四、 详细设计
数据存储结构设计
哈夫曼节点
哈夫曼节点数据类型如下,包含字符,权值,父节点,左右孩子:
typedef struct{
char ch;
un sig ned int weight;
un sig ned int pare nt,lchild,rchild;
}HTNode,*HfmTree;
哈夫曼编码
哈夫曼编码用二级指针存储,动态分配空间 :
typedef char **HfmCode;
算法的设计思想
(1) Select 函数
void Select(HfmTree HT,int a,int s1,int s2){
aren t!=0);
s1=i;
while(HT[++i].pare nt!=0);
s2=i++;
if(HT[s1].weightHT[s2].weight){
temp=s1;
s仁 s2;
s2=temp;
}
for(;i=a;i++){
if(HT[i].pare nt==O)
if(HT[i].weightHT[s1].weight) s1=i;
else if(HT[i].weightHT[s2].weight) s2=i;
}
}h=ch[i-1];
HT[i].weight=w[i-1];
HT[i].pare nt=O;
HT[i].lchild=O;
HT[i].rchild=O;
}h=0;
HT[i].weight=0;
HT[i].pare nt=O;
HT[i].lchild=0;
HT[i].rchild=0;
}are nt=i;
HT[s2].pare nt=i;
HT[i].lchild=s1;
HT[i].rchild=s2;
\ HT[i].weight=HT[s1].weight+HT[s2].weight;
}
HC=(HfmCode)malloc(( n+1)*sizeof(char*));
cd=(char*)malloc( n*sizeof(char));
cd[ n-1]=\0;
for(i=1;i=n; i++){
start=n-1;
for(c=i,f=HT[i].pare nt;f!=O;c=f,f=HT[f].pare nt){
if(HT[f].l
您可能关注的文档
- 赣榆帮扶医院制度汇编.docx
- 赤壁赋导学案(附答案).doc
- 赤壁汉茶生态文化产业园总体策划暨控制性详细规划_巅峰智业.doc
- 赤尾安全套创意设计:再性急也不担心戴错了.docx
- 赤峰煤矸石电厂监理实施细则(主厂房工程土建部分).docx
- 赤水市星级酒店建设项目可行性实施报告.docx
- 赤沙镇中心幼儿园欺凌处置预案.doc
- 赫尔默特方差分量估计.docx
- 走向自立人生测评.docx
- 走进九龙江,快乐向前冲企划案(修订稿)资料.docx
- 3.1笔墨之美 课件 2025湘美版美术八年级上册.pptx
- 4.10认识船(教学课件)科学人教鄂教版二年级上册2025.pptx
- 第12课《 巧妙化解冲突》 课件 北师大版心理健康八年级上册.pptx
- 浙教版信息科技四年级下册全册教学设计教案.docx
- 2.3游戏中的观察(教学课件)科学教科版一年级上册2025.pptx
- 第13课《 合作的秘诀》课件 北师大版心理健康七年级上册.pptx
- 5.24 制作“冰琥珀”(教学课件)科学青岛版五四制三年级上册2025.pptx
- 人自然社会第9课《面对考试,你准备好了吗》课件.pptx
- 浙教版信息科技四年级下册全册学习任务单.docx
- 4.10认识船(教学课件)科学人教鄂教版二年级上册2025.ppt
最近下载
- 2025年新版乡村振兴考试题大题及答案.docx VIP
- 幼儿《保教知识与能力》模块六:教育活动的组织与实施(上).pdf VIP
- RoboSim虚拟机器人第二十一课-估算游戏.pdf VIP
- 新加坡SM1英语模拟试卷.docx VIP
- 2025《BIM技术在土木工程中的应用研究》13000字.docx
- 2025年新版乡村振兴考试题大题及答案.doc VIP
- 探究标题意蕴-2025年高考语文备考小说阅读答题方法及模板(新高考通用)原卷版.pdf VIP
- 2023年福建省计算机专项考评员试题.docx VIP
- RoboSim虚拟机器人第二十课-变色技能.pdf VIP
- 财务管理(专-2020春)形成性考核任务一.doc VIP
原创力文档


文档评论(0)