下载此文档

数据结构哈弗曼树编码.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
#include<>#include<>#include<>#include<>#defineMaxLength1000//输入文本最大长度#defineN20/*叶子结点数*/typedefintDataType;typedefstruct{charch;DataTypeweight;/*假设叶子权值为整型*/intlchild,rchild,parent;}Htnode;/*哈夫曼树结点类型*/typedefstruct{char*code;charleaf;intlength;/*编码的长度*/}CodeType;/*叶编码类型*/voidselectsort(Htnodehuftree[],intend,int*s1,int*s2){ intmin,min2; inti,j,k; for(i=1;i<=end;i++) { if(huftree[i].parent==-1)//找父节点是-1的点{ min=i; break; } } for(j=2;j<=end;j++) { if(huftree[j].parent==-1&&huftree[j].weight<huftree[min].weight) { min=j; } } *s1=min; for(i=1;i<=end;i++) { if(huftree[i].parent==-1&&i!=min) { min2=i; break; } } for(k=2;k<=end;k++) { if(k==min) continue; if(huftree[k].parent==-1&&huftree[k].weight<huftree[min2].weight) { min2=k; } } *s2=min2;}//voidHufcoding(Htnodehuftree[],CodeTypecd[],intw[],intn)voidHufcoding(Htnodehuftree[],CodeTypecd[],charchs[],intw[],intn){/*哈夫曼树存放在静态链表huftree中,w存放结点权重,n是叶子个数,最后的编码放在cd[]*/inti,j,k,s1,s2,s,m,f,c,sum;chartemp[N];/*暂存叶子编码字符串,最后需要转置*/m=2*n-1;/*计算哈夫曼树的结点总数*/charch;for(i=1;i<=n;i++)/*初始化每个结点自成一棵树*/{huftree[i].weight=w[i-1];huftree[i].lchild=huftree[i].rchild=huftree[i].parent=-1;huftree[i].ch=chs[i-1];} for(i=n+1;i<=m;i++)/*初始化*/ { huftree[i].weight=-1; huftree[i].lchild=huftree[i].rchild=huftree[i].parent=-1; } for(i=1;i<=n-1;i++)/*生成n-1个非叶子结点的循环*/ { selectsort(huftree,n+i-1,&s1,&s2);/*对数组huftree [1..n+i-1]中无双亲的结点权值进行排序,

数据结构哈弗曼树编码 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wdwd123321123
  • 文件大小47 KB
  • 时间2019-11-18