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