做餐饮网站价格,做网站需要掌握什么软件,怎么让网站排名下降,wordpress4.9.2Lab05 树结构的应用学号#xff1a; 姓名#xff1a; 实验时间#xff1a;2011.5.241.问题描述哈弗曼树的编码与译码— 功能#xff1a;实现对任何类型文件的压缩与解码— 输入#xff1a;源文件#xff0c;压缩文件— 输出#xff1a;解码正确性判定#xff0c;统计压…Lab05 树结构的应用学号 姓名 实验时间2011.5.241.问题描述哈弗曼树的编码与译码— 功能实现对任何类型文件的压缩与解码— 输入源文件压缩文件— 输出解码正确性判定统计压缩率、编码与解码速度— 要求 使用边编码边统计符号概率的方法(自适应Huffman编码) 和事先统计概率的方法(静态Huffman编码) 。2.1程序清单程序书签main函数压缩函数select函数encode函数解压函数#include #include #include #include #include struct node{long weight; //权值unsigned char ch;//字符int parent,lchild,rchild;char code[256];//编码的位数最多为256位int CodeLength;//编码长度}hfmnode[512];void compress();void uncompress();//主函数void main(){int choice;printf(请选择1~3\n);printf(1.压缩文件\n);printf(2.解压文件\n);printf(3.退出\n);scanf(%d,choice);if(choice1)compress();else if(choice2)uncompress();else if(choice3)return;else printf(输入错误);}//压缩函数void compress(){int i,j;char infile[20],outfile[20];FILE *ifp,*ofp;unsigned char c;//long FileLength,filelength0;int n,m;//叶子数和结点数int s1,s2; //权值最小的两个结点的标号char codes[256];long sumlength0;float rate,speed;int count0;clock_t start1, start2,finish1,finish2;double duration1,duration2;void encode(struct node *nodep,int n);//编码函数int select(struct node *nodep,int pose);//用于建哈弗曼树中选择权值最小的结点的函数printf(请输入要压缩的文件名:);scanf(%s,infile);ifpfopen(infile,rb);if(ifpNULL){printf(文件名输入错误文件不存在!\n);return;}printf(请输入目标文件名:);scanf(%s,outfile);ofpfopen(outfile,wb);if(ofpNULL){printf(文件名输入错误文件不存在!\n);return;}start1clock() ;//开始计时1//统计文件中字符的种类以及各类字符的个数//先用字符的ASCII码值代替结点下标FileLength0;while(!feof(ifp)){fread(c,1,1,ifp);hfmnode[c].weight;FileLength;}FileLength--; //文件中最后一个字符的个数会多统计一次所以要减一hfmnode[c].weight--;//再将ASCII转换为字符存入到结点的ch成员里同时给双亲、孩子赋初值-1n0;for(i0;i256;i)if(hfmnode[i].weight!0){hfmnode[i].ch(unsigned