1 / 15
文档名称:

哈弗曼编码的实现.doc

格式:doc   大小:89KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

哈弗曼编码的实现.doc

上传人:drp539606 2019/2/7 文件大小:89 KB

下载得到文件列表

哈弗曼编码的实现.doc

文档介绍

文档介绍:一、编码【题目描述】给定一篇用于通信的英文电文,统计该电文中每个字符出现的频率,按频率左小右大的方法为这些字符建立哈夫曼(Huffamn)树,并编出每个字符的哈夫曼树码,输出该电文的哈夫曼码译文。 【输入】。【输出】。 【输入输出样例1】                             **********【数据限制】2<=英文电文字符数<=10000000统计以上abcd出现的个数。a:3   b:2   c:4   d:10构造出哈夫曼树a:011        b:010    c  :00         d:1下面主要通过两个结构体数组来实现:structnode1{ intw,lch,rch,parent;}ht[2*N0-1+1];数组下标1234567父节点的数组下标parent0000   左孩子节点的数组下标lch0000   右孩子节点的数组下标rch0000   权值w32410   -》数组下标1234567父节点的数组下标parent55000  左孩子节点的数组下标lch00002  右孩子节点的数组下标rch00001  权值w324105  -》.。。。。。。。。数组下标1234567父节点的数组下标parent5567670左孩子节点的数组下标lch0000256右孩子节点的数组下标rch0000134权值w324105919 structnode2{ charch;//对应的字符abcd intstart;//编码的起始位置注意这个编码是倒着的所以这里用start intcode[N0];//这个是编码数组}hc[N0+1];大概图如下面下面给出大家想要的程序部分viewplaincopytoclipboardprint?//#include ""  //#include   " "   #include <iostream>  #include <string>  const int N0=10;  const int N=100;  const int INF=1000000;  struct node1   { int w, lch, rch, parent;  }ht[2*N0-1+1];  struct node2  { char ch;   int start;   int code[N0];  }hc[N0+1];  int n,root;//n为叶子的个数  void readData()  { char ch;  int num[256]={ 0 };   n=0;   freopen( "", "r", stdin);//读文本文件   while( (ch=getchar()) != EOF )    num[ch]++;   for( int i=0; i<=255; i++ )   { if( num[i] )    { n++;     ht[n].w=num[i];     hc[n].ch=i;    }   }  }  void select1( int t, int *s1, int *s2)//用两个数来记录没有在树上的最小的两个值,从而进一步生成树。  { int w1,w2;   w1=w2=INF;   for( int i=1; i<=t; i++ )    if( ht[i].parent==0 )     if( ht[i].w<w1 )     { w2=w1;      *s2=*s1;      w1=ht[i].w;      *s1=i;     }     else if( ht[i].w<w2 )     { w2=ht[i].w;      *s2=i;     }  }   void createHufTreeHuCode()  { int i, s1, s2;   int child, parent;   root=2*n-1;   for( i=n+1; i<=root; i++)   { select1(i-1, &s1, &s2 );    ht[i].w=ht[s1].w+ht[s2].w;    ht[i].lch=s1;    ht[i].rch=s2;    ht[s1].parent=ht[s2].parent=i;   }   for(  i=1; i<=n; i++)   { child=i;    while( child !=

最近更新

2024年贵州毕节双山新区乡镇事业单位招聘历年.. 59页

2024年贵州毕节金沙经济开发区招聘10人历年高.. 89页

2024年贵州省兴义市事业单位招聘423人历年高频.. 88页

2024年贵州省安顺市黄果树旅游区事业单位招聘.. 59页

2024年湖北省宜昌市夷陵区部分事业单位招聘14.. 59页

2024年甘肃环县房地产管理局事业单位选聘工作.. 59页

2024年福建工业学校事业单位招聘9人历年高频难.. 59页

2024年财政部部属单位招聘应届高校毕业生27名.. 59页

2023年湖南长沙市应急管理局所属事业单位招聘.. 120页

2024年海南省海口市国土资源局下属事业单位招.. 59页

2024年湖南常德汉寿县事业单位招聘历年高频难.. 60页

2024年湖南长沙市图书馆公开招聘25名中级雇员.. 59页

2024年福建省福州市人事人才公共服务中心招聘.. 59页

2024年自治区县以上医疗卫生事业单位招聘84名.. 60页

2024年贵州省毕节市七星关区事业单位招聘94人.. 88页

2023云南曲靖沾益区招聘事业单位人员高频考点.. 274页

2023年安徽省合肥市瑶海区财政局招聘高频考点.. 279页

2023年浙江省绍兴市诸暨市浣东街道黄徐村(社.. 278页

2024年吉林工信厅直属事业单位公开招聘历年高.. 280页

2024安徽安庆市直事业单位招聘拟聘用人员历年.. 273页

国网2023年高校毕业生招聘许继集团招聘247人高.. 283页

2023年四川省乐山市井研县千佛镇瓦子坝村(社.. 280页

2023年四川省绵阳市平武县大桥镇大桥(社区工.. 269页

2023年广东广州海珠区住房和建设局属下事业单.. 279页

2023年江西省吉安永丰县自然资源局选调局属事.. 277页

2023年浙江省湖州市德清县钟管镇东舍墩村(社.. 277页

初中化学标签受损类成分的探究题 32页

水磨钻成孔施工定额测定及单价分析 3页

卫生技术人员下基层医院服务登记表模板1 2页

2023年结构化面试真题及答案解析 8页