全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#define error 0#define ok 1typedef struct unsigned int weight; unsigned int parent,lchild,rchild;htnode,*huffmantree;typedef char*huffmancode;int n,s1,s2;void select(huffmantree &ht,int n,int &s1,int &s2) int i=1; while(hti.parent!=0) i+; s1=i; i+; while(hti.parent!=0) i+; s2=i; for(;i=n;i+) if(hti.parent=0) if(hti.weighthts1.weight) s2=s1; s1=i; else if(hti.weighthts2.weight) s2=i; void huffmancoding(huffmantree &ht,huffmancode &hc, int *w,int n) int c,m,f,i,start; char *cd; if(n=1) return; m=2*n-1; ht=(huffmantree)malloc(m+1)*sizeof(htnode); /0单元未用 huffmantree p=ht+1; /w+; for(i=1;iweight=*w; p-parent=0; p-rchild=0; p-lchild=0; for(;iweight=0; p-parent=0; p-rchild=0; p-lchild=0; for(i=n+1;i=m;i+) /建huffman树(从叶子后开始存内结点) select(ht,i-1,s1,s2); /在ht1i-1选择 hts1.parent=i; hts2.parent=i; hti.lchild=s1; hti.rchild=s2; hti.weight=hts1.weight+ hts2.weight; hc=(huffmancode)malloc(n+1)*sizeof(char*); /分配n个字符编码的头指针向量 cd=(char*) malloc(n*sizeof(char); /分配求编码的工作空间(n) cdn-1=0; /编码结束符(从cd0cdn-1为合法空间) 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; /c=f; hci=(char *)malloc(n-start)*sizeof(char);/为第i个字符编码分配空间 strcpy(hci,&cdstart); free(cd); for(i=1;i=m;i+) printf(%d %d %d %d %dn,i,hti.weight,hti.parent,hti.lchild,hti.rchild); system(pause); /huffmancodingint main() int *w,i; huffmantree ht; huffmancode hc; printf(output:n); printf(请输入叶子节点数:n); scanf(%d,&n); w=(int *)malloc(n*sizeof(int); hc=(huffmancode)malloc(n*sizeof(huffmancode); printf(请输入各叶子节点的权数:n); for(i=1;i=n;i+) scanf(%d,&wi-1); huffmancoding(ht,hc,w,n); printf(输出编码结果:n); /s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026市属企业面试题及答案
- 成都保育员高级模拟考试试题及答案
- 2026年装修基础知识考试试题及答案
- 从化家政招聘考试试题及答案
- 河海大学分班模拟考试试题及答案
- 中考物理速度路程时间计算|平均速度与瞬时速度
- 专题03 整本书阅读-统编版八年级《语文》下学期教学课件
- 第一节动物在自然界中的作用
- 传统光学加工第一章粗磨
- 湛江市廉江市石岭镇社区工作者招聘考试题目
- 2026年古蔺县公开招募医疗卫生辅助岗人员(38人)考试备考题库及答案详解
- 2026年往年深圳辅警考试试题及答案
- 2025四川金融控股集团有限公司招聘16人笔试历年参考题库附带答案详解
- 2026年人教PEP版(新教材)小学英语四年级下册期末综合测试卷及答案
- 2026年安全行车教育与新规解读培训
- 2026人教版四年级数学下册期末模拟测试卷(4套含答案可打印)
- 2025年黑龙江省地理生物会考真题试卷(含答案)
- 2026中国铁路济南局集团限公司信息技术所招聘30人(三)易考易错模拟试题(共500题)试卷后附参考答案
- 会计师事务所司法会计鉴定工作底稿模版
- 2023年街道办人员招聘笔试考试题及答案
- DB3208-T 187-2022白羽肉种鸽营养需要量
评论
0/150
提交评论