关键字检索实验报告
一、问题描述
1实验题目:利用哈夫曼编码进行通信可以大大提高信道的利用
率,缩短信息传输时间,降低传输成本。但是这要求在发送端通过一
个编码系统对待传数据进行预先编码,在接收端进行解码。对于双工
信道,每端都需要一个完整的编解码系统。
2基本要求:初始化。读入字符集大小
,以及
个字符和
个
权值,建立huffma
树,并将它存入hfmtree中。
编码。利用已经建立好的huffma
树将文件进行编码。
3测试数据
对“THISPROGRAMISMYFAVORITE”进行编码。
权值为w280186641322321032115475715
32205763151485180238181161
二、需求分析
1、本程序用来实现对文件的哈夫曼编码。
2、程序自动根据权值对字母进行哈夫曼编码,并对一句话进行
哈夫曼编码,输出它的哈夫曼编码。
三、概要设计
1数据类型:栈
typedefstructchardatai
tstacksizei
ttop
sqstack
f哈夫曼树
typedefstructi
tweighti
tpare
tlchildrchild
ht
odehtreetypedefht
odehufftreetypedefcharhuffma
code
2程序模块主程序模块:实现函数的调用,并对句子进行哈夫曼编码。栈的相关模块:提供栈的基本操作编码模块:实现哈夫曼编码调用关系:
主函数
编码函数
栈操作
四、详细设计
1栈操作
初始化
voidi
itstacksqstacksi
tmsize1000
sdata
ewcharmsizesstacksizemsizestop1
获取栈顶元素
boolgettopsqstackschareifstop1cout