二叉树两种存储的应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二叉树两种存储的应用

? 数据结构实验 ? 实验四 ? 二叉树两种存储结构的应用? ? ? 计算机科学与技术系0901班 日 期:2011年5月5日 ? ? 实验报告 2009级 0901班 2011年5月5日 实验类型:综合设计型 实验地点:软件实验室三 一 ?????????????实验题目 二 ?????????????需求分析 三 ?????????????概要设计 四 ?????????????详细设计2009100145 编码 ofstream fop(CodeFile.dat,ios::trunc); //打开码文存放文件 char *code; code=new char[LeafNum]; //存放一个源文字符的编码 int k=0; while(SourceText[k]!=\0) //源文串中从第一个字符开始逐个编码 { int star=0; char ch=SourceText[k]; for(int i=0;iLeafNum;i++) if(Info[i]==ch)//求出该文字所在的单元编号 break; int j=i; while(Node[j].parent!=-1) { j=Node[j].parent; if(Info[Node[j].lchild]==Info[i]) code[star++]=0; else code[star++]=1; i=j; } code[star]=\0; for(i=0;istar/2;i++) { int j=code[i]; code[i]=code[star-i-1]; code[star-i-1]=j; } i=0; //将源文的当前字符的对应编码写入码文文件 while(code[i]!=\0) { fopcode[i]; i++; } k++; //源文串中的字符后移一个 } fop.close(); cout已完成编码,码文已写入文件CodeFile.dat中。\n\n; } //2009100136 译码 ifstream fip1(CodeFile.dat); if(fip1.fail()) { cout没有码文,无法译码。\n; return; } char* CodeStr; int k=0; char ch; while(fip1.get(ch)) { k++; } fip1.close(); CodeStr=new char[k+1]; ifstream fip2(CodeFile.dat); k=0; while(fip2.get(ch)) CodeStr[k++]=ch; fip2.close(); CodeStr[k]=\0; cout经译码得到的源文为:; ofstream fop(TextFile.dat); int j=LeafNum*2-1-1; //j指向哈夫曼树的根 int i=0; //码文从第一个符号开始,顺着哈夫曼树由根下行,按码文的当前符号决定下行到左孩子还是右孩子 while(CodeStr[i]!=\0) { //下行到哈夫曼树的叶子结点处,则译出叶子结点对应的源文字符 if(CodeStr[i]==0) j=Node[j].lchild; else j=Node[j].rchild; if(Node[j].rchild==-1) { coutInfo[j]; fopInfo[j]; j=LeafNum*2-1-1; } i++; } fop.close(); //2009100122 显示哈弗曼树 void HuffmanTree::PrintCodeFile() { char ch; int i=1; ifstream fip(CodeFile.dat); ofstream fop(CodePrin.dat); if(fip.fail()) { cout没有码文文件,无法显示

文档评论(0)

ojd475 + 关注
文档贡献者

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

1亿VIP精品文档

相关文档