全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市绿化解决方案项目可行性研究报告
- 2025年校企合作人才培养项目可行性研究报告
- 2025年废弃物再生利用项目可行性研究报告
- 2026年三门峡社会管理职业学院单招职业倾向性考试题库及参考答案详解一套
- 2026年甘肃机电职业技术学院单招职业技能考试题库含答案详解
- 2026年甘孜职业学院单招职业倾向性测试题库参考答案详解
- 2026年湖南民族职业学院单招职业技能测试题库带答案详解
- 2026年贵州城市职业学院单招职业倾向性考试题库及完整答案详解1套
- 2026年宁波城市职业技术学院单招职业倾向性测试题库附答案详解
- 2026年天津国土资源和房屋职业学院单招职业倾向性测试题库带答案详解
- 招投标自查自纠报告
- 高校公寓管理述职报告
- HG-T 20583-2020 钢制化工容器结构设计规范
- 单位职工健康体检总结报告
- 有序则安之现场定置管理技术
- V型滤池设计计算书2021
- 医院护理培训课件:《老年患者静脉输液的治疗与护理》
- 安全用电防止触电主题教育PPT模板
- LY/T 1690-2017低效林改造技术规程
- 通信工程设计基础doc资料
- 流体机械原理:05第四章 泵的汽蚀
评论
0/150
提交评论