C 哈弗曼编码实验报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构集中上机 试验报告 学院: 计算机科学与技术 专业:计算机科学与技术 学号: 班级: 姓名: 2010-12-25 题目:哈弗曼编码 需求分析: I:初始化。从文件读入字符集大小n,以及n个字符和n个权值,建立Huffman树,。 E:编码(encoding)。利用以建好的HuffmanTree(如不在内在,则从文件hfmzifu中读入),对用户给定文件中正文进行编码,然后将结果存入用户给定文件中。 D:译码(decoding)。利用已建好的HuffmanTree对输入的文件中的代码进行译码,结果存入用户给定文件中。 T:印HuffmanTree。将已在内在中的HuffmanTree以直观的方式显示在终端上。 详细设计 源文件:Huffmantree.cpp 函数有主函数main();求最小的权值minl(HuffmanTree.int i); 选择函数Silect (HuffmanTree t,int i,int *s1,int *s2);哈弗曼编码函数HuffmanCoding(HuffmanTree *HT,HuffmanCode *HC,int *w,int n); 源程序 #include iostream #include fstream #include cstring using namespace std; typedef struct { int weight; int parent; int lchild; int rchild; }HTNode,*HuffmanTree; typedef char **HuffmanCode; int minl(HuffmanTree t,int i); void HuffmanCoding(HuffmanTree *HT,HuffmanCode *HC,int *w,int n); void select(HuffmanTree t,int i,int *s1,int *s2); //-------------------------------------------------------------------------- void main() { HuffmanTree HT; HuffmanCode HC; ifstream in(hfmzifu.txt); int *w,n,i; cout从文件hfmzifu.txt输入字符的个数,字符,权值,#代表空格endl; inn; char *ch; ch=(char *)malloc((n+1)*sizeof(char)); w=(int *)malloc(n*sizeof(int)); for (i=0;in;i++) { inch[i+1]; inw[i]; }//给w赋值。 HuffmanCoding(HT,HC,w,n);//建哈弗曼树 cout--------------------------------------------------------endl; cout请选择操作:endl; cout 1:输出哈弗曼树;endl; cout 2:从Myinput文件中读取字符然后编码存入codemyinput文件中;endl; cout 3:从codemyinput读取编码输入到频幕上;endl; cout 4:将codemyinput读取编码译码后存盘;endl; cout 0:退出系统!!!!endl; cout请输入你的选择:endl; while (true) { int c; cinc; if (c==0) { cout退出系统!endl; break; } while(c4||c0) { cout你输入有误请重新输入:endl; cinc; } fstream file; ofstream outfile; ifstream printfile; ifstream codefile; ofstream Myoutput; if(c==1) { cout哈弗曼树为:endl; cout

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档