大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)

大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)

ID:30309613

大小:4.24 MB

页数:14页

时间:2018-12-28

大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)_第1页
大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)_第2页
大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)_第3页
大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)_第4页
大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)_第5页
资源描述:

《大数据结构实验报告材料(哈夫曼编码加密文件资料资料资料)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案《数据结构》实验报告题目:利用哈夫曼编码给文件或者文字加密班级:xxxx学号:xxxxxxxxxxx姓名:xxx完成时间:2010年12月19日任课教师:xxx精彩文档实用标准文案问题描述用哈夫曼编码,将输入的文字,或者文件中的文字进行编码,并输出加密后的文字。主程序main一、程序总体结构显示界面告诉用户程序名称show()给用户提供选择方式chioce1()显示系统时间showtime()打开文件进行加密openfile()退出程序输入电文进行加密input()统计输入(文件中)字母的出现频率CrW(data,w,

2、count)【fcount(alldata,data,count)】将输入(文件中)的电文创建成哈夫曼树CrtHuffmantree(ht,w,n)将输入(文件中)的电文进行哈夫曼编码CrtHuffmanCode(ht,hc,n)输出每一个字母所对应的哈夫曼编码Printf(hc,n,data,alldata,count)对输入(文件中)的文字进行哈夫曼加密showall(hc,alldata,count,data,n)精彩文档实用标准文案1、数据结构此函数中运用到的数据结构知识就是哈夫曼树的建立以及遍历,建立主要就是每一次选择权

3、值最小的两个数并将其求和,然后用他们的和代替这两个数,再进行求两个最小值,最后构成一个哈夫曼数;遍历是采用从叶子结点开始向根节点确定唯一的路径。2、主要函数:(1)voidCrtHuffmantree(HuffmanTree&ht,intw[],intn),功能是建立一个哈夫曼树;(2)voidCrtHuffmanCode(HuffmanTreeht,HuffmanCodehc,intn),功能是计算哈夫曼编码;(3)voiddianwen(intcount[],charalldata[]),功能是统计输入电文的字母种类以及频率;

4、(4)intfcount(charalldata[],chardata[],intcount[]),功能是统计打开文件中出现的字母的种类以及频率;(5)voidshowtime(),功能是查看系统当前的时间;(6)intsearch(charch,chardata[],intn),查询电文中的每一个字母所对应得哈夫曼编码的下标;(7)voidPrintf(HuffmanCode&hc,intn,chardata[],charalldata[],intcount[]),功能是输出每一个字母所对应的哈夫曼编码;(8)voidshowa

5、ll(HuffmanCodehc,charalldata[],intcount[],chardata[],intn),功能是输出经过加密后的密文。一、源代码精彩文档实用标准文案#include#include#include#include#defineN27//定义最大叶子结点个数#defineM2*N-1typedefstruct//定义哈夫曼结构体{intweight;intparent;精彩文档实用标准文案intLChild;intRChild;}H

6、TNode,HuffmanTree[M+1];//0号单元不用typedefchar*HuffmanCode[N+1];//存储哈夫曼编码串的头指针//调用系统的时间voidshowtime(){time_tt;tm*tp;t=time(NULL);tp=localtime(&t);printf("ttt%d/%d/%d",tp->tm_mon+1,tp->tm_mday,tp->tm_year+1900);printf("ttt%d:%d:%d",tp->tm_hour,tp->tm_min,tp

7、->tm_sec);}//**************计算电文中各个英文字母出现的次数*******************voiddianwen(intcount[],charalldata[]){intn,i;printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("tttt请输入电文:");fflush(stdin);for(i=0;i<27;i++)//将数组计数器初始化count[i]=0;printf("%c",7);alldata[0

8、]=getchar();while(alldata[count[0]]!=''){n=(alldata[count[0]]-'a')+1;count[n]++;count[0]++;//所有字母的总个数alldata[count[0]]=get

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

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

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