




已阅读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江苏省退役军人事务厅直属优抚医院招聘12人考前自测高频考点模拟试题附答案详解
- 安全培训教学壁纸课件
- 2025年闭式塔项目合作计划书
- 2025湖南新宁县事业单位和县属国有企业人才引进降低开考比例岗位考前自测高频考点模拟试题及答案详解(易错题)
- 2025福建泉州发展集团有限公司(第一批)人才引进招聘25人模拟试卷及一套完整答案详解
- 客户信息采集及管理工具
- 小区农业设施共享管理协议
- 2025年安徽交控集团所属安徽交控石油有限公司招聘16人模拟试卷及答案详解(名师系列)
- 2025广东韶关市翁源县人民法院招聘劳动合同制书记员1人模拟试卷及答案详解(新)
- 医学研究成果安全保障承诺书(3篇)
- 2025年中小学国防教育知识竞赛活动考试题库200题(含答案)
- 校长讲法治课课件
- 村播培训直播课件
- 2025河南新乡长垣市公证处招聘合同制人员5人考试参考题库及答案解析
- 颈椎骨折课件导图
- 2025至2030中国工业云平台行业发展研究与产业战略规划分析评估报告
- 2025餐饮合伙经营合同协议书
- 2025年山东西学中题库及答案
- 14.2物质的比热容同步练习(含答案) 沪科版物理九年级全一册
- 《国家机构有哪些》课件
- 肉制品安全培训会课件
评论
0/150
提交评论