1 / 4
文档名称:

算法设计与分析实验报告贪心算法.doc

格式:doc   大小:25KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

算法设计与分析实验报告贪心算法.doc

上传人:cby201601 2020/6/19 文件大小:25 KB

下载得到文件列表

算法设计与分析实验报告贪心算法.doc

文档介绍

文档介绍:算法设计与分析实验报告贪心算法班级:2013156学号:201315614姓名:张春阳哈夫曼编码代码#include<>floatsmall1,small2;intflag1,flag2,count;typedefstructHuffmanTree{ floatweight; intlchild,rchild,parent;}huffman;huffmanhuffmantree[100];voidCreatHuffmanTree(intn,intm){ inti; voidselect(); printf("请输入%d个节点的权值:",n); for(i=0;i<n;i++) scanf("%f",&huffmantree[i].weight); printf("\n"); for(i=0;i<m;i++) { huffmantree[i].lchild=-1; huffmantree[i].rchild=-1; huffmantree[i].parent=-1; } for(count=n;count<m;count++) { select(); huffmantree[flag1].parent=count; huffmantree[flag2].parent=count; huffmantree[count].weight=small1+small2; huffmantree[count].lchild=flag1; huffmantree[count].rchild=flag2; }}voidselect(){ inti,a,b; floatstemp; intftemp; a=0;b=0; for(i=0;i<count;i++) { if(huffmantree[i].parent==-1) { if(a==0) { small1=huffmantree[i].weight; flag1=i; a=a+1; } else if(b==0) { small2=huffmantree[i].weight; flag2=i; b=b+1; } } if((a==1)&&(b==1)) break; } if(small1>small2) { stemp=small1; small1=small2; small2=stemp; ftemp=flag1; flag1=flag2; flag2=ftemp; } for(i=0;i<count;i++) if(huffmantree[i].parent==-1) if((flag1!=i)&&(flag2!=i)) if(huffmantree[i].weight<small2) { small2=huffmantree[i].weight; flag2=i; if(small