C语言-哈夫曼编码实验报告.doc

C语言-哈夫曼编码实验报告.doc

ID:56121593

大小:344.00 KB

页数:11页

时间:2020-06-20

C语言-哈夫曼编码实验报告.doc_第1页
C语言-哈夫曼编码实验报告.doc_第2页
C语言-哈夫曼编码实验报告.doc_第3页
C语言-哈夫曼编码实验报告.doc_第4页
C语言-哈夫曼编码实验报告.doc_第5页
资源描述:

《C语言-哈夫曼编码实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、福建工程学院课程设计课程:数据结构题目:哈夫曼编码和译码专业:信息管理信息系统班级:1002班座号:15号姓名:林左权2011年6月27日实验题目:哈夫曼编码和译码一、要解决的问题利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。二、算法基本思想描述:根据给定的字符和其中每个字符的频度,构造哈夫馒树,并输出字符集中每个字符的哈夫曼编码.将给定的字符串根据其

2、哈夫曼编码进行编码,并进行相应的译码.三、设计1.数据结构的设计(1)哈夫曼树的表示设计哈夫曼树的结构体(htnode),其中包含权重、左右孩子、父母和要编码的字符。用这个结构体(htnode)定义个哈夫曼数组(hfmt[])。迷宫定义如下:typedefstruct{intweight;intlchild;intrchild;intparent;charkey;}htnode;typedefhtnodehfmt[MAXLEN];(2)对原始字符进行编码初始化哈夫曼树(inithfmt)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树。并显

3、示出每个字符的编码。1.voidinithfmt(hfmtt)//对结构体进行初始化2.voidinputweight(hfmtt)//输入函数3.voidselectmin(hfmtt,inti,int*p1,int*p2)//选中两个权值最小的函数4.voidcreathfmt(hfmtt)//创建哈夫曼树的函数5.voidphfmnode(hfmtt)//对字符进行初始编码(3)对用户输入的字符进行编码voidencoding(hfmtt)//对用户输入的电文进行编码{charr[1000];//用来存储输入的字符串inti,j;printf("

4、n请输入需要编码的字符:");gets(r);printf("编码结果为:");for(j=0;r[j]!='';j++)for(i=0;i

5、的结果是:");for(i=0;i#include#include#defineMAXL

6、EN100typedefstruct{intweight;intlchild;intrchild;intparent;charkey;}htnode;typedefhtnodehfmt[MAXLEN];intn;voidinithfmt(hfmtt)//对结构体进行初始化{inti;printf("");printf("------------------------------------------------------------------");printf("******************************输入区*****

7、*************************");printf("请输入n=");scanf("%d",&n);getchar();for(i=0;i<2*n-1;i++)//对结构体进行初始化{t[i].weight=0;t[i].lchild=-1;t[i].rchild=-1;t[i].parent=-1;}printf("");}voidinputweight(hfmtt)//输入函数{intw;//w表示权值inti;chark;//k表示获取的字符for(i=0;i

8、1);scanf("%c",&k);getchar();t[i].key=k;p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。