电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

游程编码C语言VIP免费

游程编码C语言_第1页
1/6
游程编码C语言_第2页
2/6
游程编码C语言_第3页
3/6
从文件中读取下列二元编码00001110010101100001110001110001111010,实现其游程编码,然后再对游程序列进行哈弗曼编码。 结果保存在 out.dat 中。 程序代码: #include #include #include struct node{ int id; int num; double probability; }; typedef struct{ double weight; int parent,lchild,rchild; }HuffmanTree; void Select(HuffmanTree *HT,int i,int *s1,int *s2) { int n,T=0,T1; for(n=1;nweight=*w; p->lchild=0; p->rchild=0; p->parent=0; } for(;i<=m;++i,++p) { p->weight=0; p->lchild=0; p->rchild=0; p->parent=0; } for(i=n+1;i<=m;++i) { Select(HT,i,&s1,&s2); HT[s1].parent=i; HT[s2].parent=i; HT[i].lchild=s1; HT[i].rchild=s2; HT[i].weight=HT[s1].weight+HT[s2].weight; } cd=malloc(n*sizeof(char)); cd[n-1]='\0'; for(i=1;i<=n;++i) { start=n-1; for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) if(HT[f].lchild==c) cd[--start]='1'; else cd[--start]='0'; HC[i]=(char *)malloc((n-start)*sizeof(char)); strcpy(HC[i],&cd[start]); } free(cd); } void initstruct(struct node p[],int T) { int i; for(i=1;i<=T;i++) { p[i].id=0; p[i].num=0; p[i].probability=0.0; } } int getI(struct node p[],int e,int T) { int i; for(i=1;i<=T;i++) { if(p[i].id==e) return i; } return -1; } void count(struct node p[],int T) { int i; for(i=1;i<=T;i++) { p[getI(p,p[i].id,T)].num++; } } int countevent(struct node p[],int T) { int i,n=0; for(i=1;i<=T;i++) { if(p[i].num!=0) n++; } return n; } void order(struct node p[],struct node p2[],int T)...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

游程编码C语言

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部