已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈夫曼编码及译码#include#include#include#includeusing namespace std;struct HuffmanNodeint parent;int weight;int lchild,rchild;class HuffmanTreepublic:void CountHuffman();void CodeHuffman();void DecodeHuffman();huffmanTree();private:struct HuffmanNode *Node;char *data;int leaf;int vv;char a100;int q100100;HuffmanTree:huffmanTree()Node=NULL;data=NULL;leaf=NULL;vv=NULL;void HuffmanTree:CountHuffman() /输入字符并统计字符数目int count100;for(int j=1;j=26;j+)countj=0;int c;char x;couta;c=strlen(a);for(int i=0;ic;i+)x=(*(a+i);for(int zz=1;zz=26;zz+)if(x=a+zz-1|x=A+zz-1)countzz+;int k=0;for(i=1;i=26;i+)if(counti!=0)k+;leaf=k;int pos1,pos2,min1=1000,min2=1000;Node=new HuffmanNode2*leaf-1; data=new charleaf;int f=0;int g=0;for(i=1;i=26;i+)if(counti!=0)dataf=a+i-1;Nodef.weight=counti; g=g+counti;Nodef.parent=-1; Nodef.lchild=-1; Nodef.rchild=-1;f+;for(i=leaf;i2*leaf-1;i+)for(j=0;ji;j+)if(Nodej.parent=-1&Nodej.weight=min1)min1=Nodej.weight;pos1=j;Nodepos1.parent=i;Nodei.lchild=pos1;for(j=0;ji;j+)if(Nodej.parent=-1&Nodej.weightmin2)min2=Nodej.weight;pos2=j;Nodepos2.parent=i;Nodei.rchild=pos2;Nodei.parent=-1;Nodei.weight=Nodepos1.weight+Nodepos2.weight;min1=1000;min2=1000;if(Nodei.weight=g)vv=i;cout字母及字母数量统计:endl;for(i=0;ileaf;i+)coutNodei.weight;if(ileaf)coutdatai;cout ;coutendl;void HuffmanTree:CodeHuffman() /编码int A100100;int d=0,ac=0,b,s,v,k=0,c;char x;cout字母所对应的编码:endl;for(int i=0;i0)ac-;if(Nodev.lchild=Aiac)v=Aiac;Aiac=0;else if(Nodev.rchild=Aiac)v=Aiac;Aiac=1;coutdatai=0;j-)coutAij;qid=Aij;d+;qid=9;ac=0;d=0;coutendl;c=strlen(a);couta;cout编码为:endl;for(i=0;ic;i+)x=(*(a+i);for(int j=0;jleaf;j+)if(x=dataj)while(qjk9)coutqjk;k+;k=0;coutendl;void HuffmanTree:DecodeHuffman() /译码int p100;int c,t=0,j=0;char x;char b100;coutb;c=strlen(b);cout译码为:;for(int i=0;ic;i+)x=(*(b+i);if(x=0)pt=0;t+;if(x=1)pt=1;t+;for(int k=0;kleaf;k+)while(qkj!=9)j+;if(t=j)int y=0;while(py=qky&y=j)y+;if(y=j)coutdatak;t=0;j=0;coutendl;void main()HuffmanTree t;while(1)cout哈夫曼编码及译码小程序:endl;cout请选择:endl;cout1、输入字符串并统计字符的种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公务员面试 面谈面试题及答案
- 活动二 纸蜻蜓平衡玩具教学设计-2025-2026学年小学综合实践活动一年级上册沪科黔科版
- 公务员考试放缓试题及答案
- 公务员考试订房试题及答案
- 公务员考试带闹钟试题及答案
- 公务员考试初试线试题及答案
- 企业战略分析报告模板
- 储罐区风险评估、报告
- 六安市谷悦生态农业发展有限公司(企业信用报告)
- 冰蓄冷中央空调市场分析报告
- 2025EMC合同样本能源管理合同
- GB/T 33450-2025科技成果转化为标准指南
- 人教版数学六年级上册 第8单元 数学广角-数与形 单元高频易错培优卷(含答案)
- 广西2025年公需科目学习考试试题及答案
- 2025年大学《蒙古语》专业题库- 蒙古族传统医学与疗法研究
- 改装电瓶选择分析方案
- 风险投资项目尽职调查手册
- 朱自清散文集读书分享汇报
- 2025年四川省公务员录用考试《行政职业能力测验》试题及答案
- 2025年新能源发电设备维护管理报告
- 临床药学培训汇报
评论
0/150
提交评论