- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告 实验 ? 实验目的和内容要求 实验 1.实验目的.实验内容输入若干个权,建立Huffman树,并进行Huffman编码与译码 (学生写出实验步骤及中间的结果与现象,在实验中做了什么,怎么做,发生的现象和中间结果)
哈夫曼树又称最优树,是一类带权路径长度最短的树,在开始写代码之前,先弄清几个步骤,先建立一个哈夫曼树。
#includeiostream
using namespace std;
typedef struct{
char a;
int weight;
int parent;
int lchild;
int rchild;
}HTNode,*Huffman_Tree;
在完成哈夫曼树的过程中注意题目的要求来实现功能。
存放n个字符的权值(均0),构造哈夫曼树HT,并求出n个字符的哈夫曼编码。
int HuffmanCoding(Huffman_Tree HT,int n)
{
int m=2*n-1;
HT=(Huffman_Tree)malloc((m+1)*sizeof(HTNode));
for(int k=1;k=n;k++)
{
cout请输入一个字符:;
cinHT[k].a;
cout请输入这个字符的权重:;
cinHT[k].weight;
HT[k].parent=-1;
HT[k].rchild=-1;
HT[k].lchild=-1;
}
for(int k1=n+1;k1=m;k1++)
{
HT[k1].a=0;
HT[k1].weight=0;
HT[k1].parent=-1;
HT[k1].rchild=-1;
HT[k1].lchild=-1;
}
for(int k2=n+1;k2=m;k2++)
{
int m1,m2;
m1=m2=0x7fff;//最小的权重
int i=0;
int j=0;//指向最小权重的位置
for(int p=1;pk2;p++)
{
if(HT[p].parent==-1)
{
if(HT[p].weightm1)
{
m2=m1;
j=i;
m1=HT[p].weight;
i=p;
}
else if(HT[p].weightm2)
{
m2=HT[p].weight;
j=p;
}
}
}
HT[i].parent=k2;
HT[j].parent=k2;
HT[k2].weight=HT[i].weight+HT[j].weight;
HT[k2].lchild=i;
HT[k2].rchild=j;
}
int b[5][5];
cout输出的哈弗曼编码为:endl;
for(int k3=1;k3=5;k3++)
{
int f=k3;
int c=f;
int s=0;
f=HT[k3].parent;
while(f!=-1)
{
if(HT[f].lchild==c)
{
b[k3][s]=0;
}
else b[k3][s]=1;
s++;
c=f;
f=HT[f].parent;
}
coutHT[k3].a:;
for(int j=s-1;j=0;j--)
{coutb[k3][j];}
coutendl;
}
return 1;
}
从叶子到根逆向求每个字符的哈夫曼编码
int main()
{
int n;
Huffman_Tree ht;
cout输入n(n为哈弗曼的节点数,n为大于2的数):;
cinn;
HuffmanCoding(ht,n);
system(PAUSE);
return 0;
}
然后在主函数中调用哈夫曼编码函数,设定简单的输入信息的函数即可完成程序。 实验结果分析与总结 1、程序运行结果(请提供所完成的各道题运行结果界面截图):
2、在实验过程中遇到的问题与解决方法:
问题存在于对于从叶子到根的逆向求编码,此处思路有一些混乱,但大致理解了,经过诸多调试还是完成了基本思路。唯一的
您可能关注的文档
最近下载
- 2025年福建高考化学卷及答案(新课标卷).docx VIP
- 小学生控笔训练.docx VIP
- 中级日语(N3)中常用的副词总结讲义--日语等级考试备战.docx VIP
- 2025年高中地理世界地理高考试题汇编.doc VIP
- 人工智能大数据支持背景下循证教学的实施研究课题申报评审书.pptx VIP
- 再审申请听证申请书范文.docx VIP
- 《综合英语I》课程教学创新成果报告.pdf VIP
- 渗透作用课件.ppt VIP
- 专题21 散文阅读(同步练习)(解析版)【中职专用】2024届高三语文(对口升学)一轮复习备考指南(湖南适用).docx VIP
- 2025年铭记历史勿忘国耻纪念九一八事变学习ppt课件.pptx
文档评论(0)