. Word 资料无损压缩编码实验实验报告一、 实验题目:无损压缩编码实验二、 实验要求:任选一种无损编码式,通过C++ 编程实现。(1) 字符串的输入是手工输入的。(2) 通过程序实现编码,最终在屏幕上现实编码结果。. Word 资料三,实验分析采用霍夫曼编码实现无损压缩编码,从键盘输入若干字符及每个字符出现的频率,将字符出现的频率作为结点的权值,建立哈夫曼树,然后对各个字符进行哈夫曼编码,最后打印输出字符及对应的哈夫曼编码,并算出平均码长。四,主要编码原理. Word 资料开始建立huffman树初始化parent,lchild,rchild为 -1从所有树中选择权值最小的两棵对变量small1和small2赋值(森林中得任意两棵树的权值)Huffmantree[i].weightsmall2否交换 small1和small2将两棵树合并,生成新节点为前 n个元素编码双亲节点是否为空否该节点为左孩子是A[i]=0;i=i+1A[i]=1;i=i+1否i=n是结束是否. Word 资料五,源程序代码#include using namespace std; class HuffmanTree// 霍夫曼树结构{public: unsigned int Weight, Parent, lChild, rChild; }; typedef char **HuffmanCode; void Select(HuffmanTree* HT,int Count,int *s2,int *s1)//从结点集合中选出权值最小的两个结点{ unsigned int temp1=0; unsigned int temp2=0; unsigned int temp3; for(int i=1;i<=Count;i++) { if(HT[i].Parent==0) { if(temp1==0) { temp1=HT[i].Weight; . Word 资料(*s1)=i; } else { if(temp2==0) {temp2=HT[i].Weight; (*s2)=i; if(temp2temp1&&HT[i].Weight