欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    哈夫曼编译器.pdf

    • 资源ID:56612903       资源大小:118.64KB        全文页数:9页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    哈夫曼编译器.pdf

    问题描述:利用哈夫曼编码进行信息通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统,试为这样的信息收发站写一个哈夫曼编译码系统。一个完整的系统应具有以下功能:(1)(1)I:初始化。从终端读入字符集大小n,及 n 个字符和n 个权值,建立哈夫曼树,并将其存于文件hfmtree 中。(2)C:编码。利用已建好的哈夫曼树(如不在内存,则从文件hfmtree 中读入),对文件 tobetrans 中的正文进行编码,然后将结果存入文件codefile中。(3)D:译码。利用已建好的哈夫曼树将文件codefile 中的代码进行译码,结果存入文件 textfile 中。(4)P:打印代码文件。将文件codefi1e 以紧凑格式显示在终端上,每行 50个代码。同时将此字符形式的编码文件写入文件codeprint 中。(5)T:打印哈夫曼树。将已在内存中的哈夫曼树以直观的方式(树或凹凸表形式)显示在屏幕上,同时将此字符形式的哈夫曼树写入文件treeprint 中。实现提示:1、用户界面可以设计为“菜单”方式:显示上述功能号,再加上“E”表示结束运性行结束,用户键入一个选择功能字符,则执行相应的功能,此功能执行完毕后再显示此菜单,直至用户选择了“E”为止。2、在程序的一次执行过程中,第一次执行了I、D 或 C 命令之后,哈夫曼树已经在内存中存在了,不必再读入。每次执行中不一定执行I 命令,因为文件hfmtree 可能早已建好。我写的源程序如下:#include#include#include /*定义赫夫曼树结点的结构体变量,存放结点的权值、字符、双亲、坐孩子和右孩子*/typedef struct int weight;char ch;/增加一个域用于存放该节点的字符int parent,lchild,rchild;HTNode,*HuffmanTree;typedef char*HuffmanCode;/指向赫夫曼编码的指针/*本程序用到的函数原型*/void welcome();/打印操作选择界面void HuffmanCoding(HuffmanTree&,char*,int*,int);/建立赫夫曼树的算法void select(HuffmanTree HT,int j,int*s1,int*s2);/从目前已建好的赫夫曼树中选择parent为 0 且 weight 最小的两个结点void Init();/输入 n 个字符及其对应的权值,根据权值建立哈夫曼树void Coding();/编码void Decoding();/译码void Print_code();/打印译码好的代码文件void Print_tree();/以凹凸表形式打印哈夫曼树int Read_tree(HuffmanTree&);/从文件中读入赫夫曼树void find(HuffmanTree&HT,char*code,char*text,int i,int m);/译码时根据01 字符串寻找相应叶子节点的递归算法void Convert_tree(unsigned char T100100,int s,int*i,int j);/将内存中的赫夫曼树转换成凹凸表形式的赫夫曼树HuffmanTree HT;/全局变量,指向存放赫夫曼树的存储空间int n=0;/全局变量,存放赫夫曼树叶子结点的数目int main()char select;while(1)welcome();scanf(%c,&select);switch(select)case i:case I:Init();break;case c:case C:Coding();break;case d:case D:Decoding();break;case p:case P:Print_code();break;case t:case T:Print_tree();break;case e:case E:exit(1);文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6default:printf(Input error!n);getchar();return 0;void welcome()/打印操作选择界面 printf(*-*n);printf(|What do you want to do?|n);printf(|-|n);printf(|n);printf(|I-Init the Huffman tree.|n);printf(|C-Code your file.|n);printf(|D-Decode the code.|n);printf(|P-Print the codefile.|n);printf(|T-Print the Huffman tree.|n);printf(|n);printf(*-*n);/*初始化函数,输入n 个字符及其对应的权值,根据权值建立哈夫曼树,并将其存于文件hfmtree中*/void Init()FILE*fp;int i,n,w52;/w数组存放n 个字符的权值char character52;/存放 n 个字符printf(n输入字符个数n:);scanf(%d,&n);/输入字符集大小printf(输入%d 个字符及其对应的权值:n,n);for(i=0;in;i+)char b=getchar();scanf(%c,&characteri);scanf(%d,&wi);/输入 n 个字符和对应的权值 HuffmanCoding(HT,character,w,n);/建立赫夫曼树if(fp=fopen(hfmtree.txt,w)=NULL)printf(Open file hfmtree.txt error!n);for(i=1;i=2*n-1;i+)文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6if(fwrite(&HTi,sizeof(HTNode),1,fp)!=1)/将建立的赫夫曼树存入文件hfmtree.txt中printf(File write error!n);printf(n建立赫夫曼树成功,已将其存于文件hfmtree.txt中n);fclose(fp);/建立赫夫曼树的算法/void HuffmanCoding(HuffmanTree&HT,char*character,int*w,int n)int m,i,s1,s2;HuffmanTree p;if(n=1)return;m=2*n-1;HT=(HuffmanTree)malloc(m+1)*sizeof(HTNode);for(p=HT+1,i=1;ich=*character;p-weight=*w;p-parent=0;p-lchild=0;p-rchild=0;for(;ich=0;p-weight=0;p-parent=0;p-lchild=0;p-rchild=0;for(i=n+1;i=m;+i)select(HT,i-1,&s1,&s2);HTs1.parent=i;HTs2.parent=i;HTi.lchild=s1;HTi.rchild=s2;HTi.weight=HTs1.weight+HTs2.weight;/*从 HT1 到 HTj中选择 parent 为 0 且 weight 最小的两个结点,用s1 和 s2 返回其序号*/void select(HuffmanTree HT,int j,int*s1,int*s2)int i;/找 weight 最小的结点for(i=1;i=j;i+)if(HTi.parent=0)*s1=i;break;for(;i=j;i+)if(HTi.parent=0)&(HTi.weightHT*s1.weight)*s1=i;HT*s1.parent=1;/找 weight 次小的结点for(i=1;i=j;i+)文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6if(HTi.parent=0)*s2=i;break;for(;i=j;i+)if(HTi.parent=0)&(i!=*s1)&(HTi.weightHT*s2.weight)*s2=i;/*对文件 tobetrans中的正文进行编码,然后将结果存入文件codefile 中*/void Coding()FILE*fp,*fw;int i,f,c,start;char*cd;HuffmanCode HC;if(n=0)n=Read_tree(HT);/从文件 hfmtree.txt中读入赫夫曼树,返回叶子结点数/以下程序段求赫夫曼树中各叶子节点的字符对应的的编码,并存于 HC 指向的空间中 HC=(HuffmanCode)malloc(n+1)*sizeof(char*);cd=(char*)malloc(n*sizeof(char);cdn-1=0;for(i=1;i=n;+i)start=n-1;for(c=i,f=HTi.parent;f!=0;c=f,f=HTf.parent)if(HTf.lchild=c)cd-start=0;else cd-start=1;HCi=(char*)malloc(n-start)*sizeof(char);strcpy(HCi,&cdstart);free(cd);/if(fp=fopen(tobetrans.txt,rb)=NULL)printf(Open file tobetrans.txt error!n);if(fw=fopen(codefile.txt,wb+)=NULL)printf(Open file codefile.txt error!n);char temp;fscanf(fp,%c,&temp);/从文件读入第一个字符while(!feof(fp)文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6 for(i=1;i=n;i+)if(HTi.ch=temp)break;/在赫夫曼树中查找字符所在的位置for(int r=0;HCir!=0;r+)/将字符对应的编码存入文件fputc(HCir,fw);fscanf(fp,%c,&temp);/从文件读入下一个字符 fclose(fw);fclose(fp);printf(n对文件 hfmtree.txt编码成功,结果已存入codefile.txt中。nn);/*将文件 codefile 中的代码进行译码,结果存入文件textfile 中*/void Decoding()FILE*fp,*fw;int m,i;char*code,*text,*p;if(n=0)n=Read_tree(HT);/从文件 hfmtree.txt中读入赫夫曼树,返回叶子结点数if(fp=fopen(codefile.txt,rb)=NULL)printf(Open file codefile.txt error!n);if(fw=fopen(textfile.txt,wb+)=NULL)printf(Open file textfile.txt error!n);code=(char*)malloc(sizeof(char);fscanf(fp,%c,code);/从文件读入一个字符for(i=1;!feof(fp);i+)code=(char*)realloc(code,(i+1)*sizeof(char);/增加空间fscanf(fp,%c,&codei);/从文件读入下一个字符 codei-1=0;/到此 codefile.txt文件中的字符已全部读入,存放在code 数组中text=(char*)malloc(100*sizeof(char);p=text;m=2*n-1;if(*code=0)find(HT,code,text,HTm.lchild,m);/从根节点的左子树去找else find(HT,code,text,HTm.rchild,m);/从根节点的右子树去找文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6文档编码:CI4U6O3X1R3 HU10P9K4Y9C8 ZX8G8S6J3V6for(i=0;pi!=0;i+)/把译码好的字符存入文件textfile.txt 中fputc(pi,fw);fclose(fp);fclose(fw);printf(n 对 codefile.txt文件译码成功,结果已存入textfile.txt 文件。nn);/*将文件 codefi1e以紧凑格式显示在终端上,每行 50 个代码。同时将此字符形式的编码文件写入文件codeprint中。*/voi

    注意事项

    本文(哈夫曼编译器.pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开