下载此文档

哈夫曼编码报告计划.docx


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
哈夫曼编码报告计划
哈夫曼编码报告计划
1 / 191
哈夫曼编码报告计划
聿实验工程:哈夫曼编码
螈1.问题描述:
肇利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输本钱。但是,这要求atree(root,str[i]);i++;}
哈夫曼编码报告计划
哈夫曼编码报告计划
8 / 198
哈夫曼编码报告计划
哈夫曼编码报告计划
哈夫曼编码报告计划
19 / 1919
哈夫曼编码报告计划
肄printf(" 字符及出现次数:\n");
哈夫曼编码报告计划
哈夫曼编码报告计划
10 / 1910
哈夫曼编码报告计划
蚂InOrderTraverse(root);
膈printf("\n");
莆HuffmanCoding(HT,HC,n);
薂DispHCode(HT,HC,n);
蒁Tran(HT,n);
芈TTranChar(HT,HC,n);
螇}
芄voidHuffmanCoding(HuffmanTree&HT,HuffmanCode&HC,intn)
膀{//w 放n个权值,构造赫夫曼树HT,n个字符编码HC
芇voidselect(HuffmanTreet,inti,int&s1,int&s2);
膈intm,i,s1,s2,start;char*cd;unsignedc,f;
蚂HuffmanTreep;
哈夫曼编码报告计划
哈夫曼编码报告计划
11 / 1911
哈夫曼编码报告计划
芃if(n<=1)return;
哈夫曼编码报告计划
哈夫曼编码报告计划
19 / 1919
哈夫曼编码报告计划
莇m=2*n-1;
莅HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));
蒄for(p=HT+1,i=1;i<=n;++i,++p)
羂{(*p).parent=0;
蒇(*p).llchild=0;
螆(*p).rrchild=0;
膆}
螁for(p=HT+1,i=0;i<n;++i,++p)
薇{(*p).data=str[i];
膇(*p).weight=s[i];
薄}
薀for(;i<=m;++i,++p)
蚇(*p).parent=0;
哈夫曼编码报告计划
哈夫曼编码报告计划
13 / 1913
哈夫曼编码报告计划
哈夫曼编码报告计划
哈夫曼编码报告计划
19 / 1919
哈夫曼编码报告计划
薈for(i=n+1;i<=m;++i)// 建赫夫曼树
哈夫曼编码报告计划
哈夫曼编码报告计划
15 / 1915
哈夫曼编码报告计划
芅{// 在HT[1~i-1]中选择parent为0且weight最小的两个,分别s1、s2
薃select(HT,i-1,s1,s2);
螇HT[s1].parent=HT[s2].parent=i;
蚄HT[i].llchild=s1;
螃HT[i].rrchild=s2;
莁HT[i].weight=HT[s1].weight+HT[s2].weight;
袇}
肅HC=(HuffmanCode)malloc((n+1)*sizeof(char*));//([0] 不用)
蒅cd=(char*)malloc(n*sizeof(char));
膀cd[n-1]='\0';// 编码结束符
膁for(i=1;i<=n;i++)
蒆{start=n-1;// 编码结束符位置
哈夫曼编码报告计划
哈夫曼编码报告计划
16 / 1916
哈夫曼编码报告计划
羃for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent)
哈夫曼编码报告计划
哈夫曼编码报告计划
19 / 1919
哈夫曼编码报告计划
膃if(HT[f].llchild==c)
芁cd[--start]='0';
袇else
蚅cd[--start]='1';
羂HC[i]=(char*)malloc((n-start)*sizeof(char));
莀strcpy(HC[i],&cd[start]);// 复制
芈}
肃free(cd);
蚁}
蒀voidse

哈夫曼编码报告计划 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人飞行的大山
  • 文件大小25 KB
  • 时间2022-06-12