


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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年山东滨州阳信县事业单位招聘70人笔试历年参考题库附带答案详解
- 温州浙江温州乐清市文化和广电旅游体育局招聘编外工作人员10人笔试历年参考题库附带答案详解
- 2025年幼师合同范本(2篇)
- 三年级英语下册- 教案 -学习任务单 Unit 6 Plants around us(身边的植物)
- 火锅创新创业项目
- 2025年湖北省八市高三(3月)联考英语试卷(含答案详解)
- 国内物流操作流程
- 媒体传媒领域可行性报告
- 模板工程施工方案模板工程施工
- 武汉理工大学计算机网络试题及答案
- 先学后教当堂训练简介
- “顺丰杯”第三届全国大学生物流设计大赛案例
- 灌区工程施工方案与技术措施
- (完整)交叉作业施工方案
- 幼儿园绘本:《小蛇散步》 课件
- 华中师大版七年级心理 2走近老师 课件(共15张PPT)
- 装配式建筑叠合板安装技术交底
- 内科学第八版循环系统教学大纲
- 1-100数字卡片(A4打印)
- 支气管肺炎临床路径
评论
0/150
提交评论