构建哈夫曼树及输出哈夫曼代码及算法思想

构建哈夫曼树及输出哈夫曼代码及算法思想

ID:30818400

大小:139.27 KB

页数:5页

时间:2019-01-03

构建哈夫曼树及输出哈夫曼代码及算法思想_第1页
构建哈夫曼树及输出哈夫曼代码及算法思想_第2页
构建哈夫曼树及输出哈夫曼代码及算法思想_第3页
构建哈夫曼树及输出哈夫曼代码及算法思想_第4页
构建哈夫曼树及输出哈夫曼代码及算法思想_第5页
资源描述:

《构建哈夫曼树及输出哈夫曼代码及算法思想》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、哈夫曼树描述文档思路通过一个arg叩数组存储从test文件中读取字母,然后利用ascal码循环计算每个字母的权值,利用weight[]是否为零,确定叶子节点,节点个数为count,传入到构建哈夫曼树的子程序中,然后利用cd[]数组存储每一个叶了节点的哈夫曼代码•输出代码时,通过与argv[]数组的比对,扫描ht数组,进而读出所有的数据。[HC•“•i«hludr<>tHimliirfr•irvcludrtvprtet«tr・cteMrOt«:i«ttutpjrrnt:UtIcftiltf;“trcftiltf;

2、typrdefstructclurc4(S0):Utd;>HCO4«;••ttrfefctr"『[)”/送仃上糧吃LhlfstrrMin;Mstreaao«t;CMrC;iat*—■・•;〃~L):B、•■・・•tvtw“tTXXVF例:mioueiiiwteio>1MII:imiofittiiwUt13•l«l■letI■limomn:U11IBlII:!!■■:1UI•1I1B1:immTHV1!IS>VIlAHXfUVHIX1ttX#•nia.ra,7*"•厂■⑥・X•…能”iwtchii^iRlermtiwi(W代码#incIude<

3、stdio.h>#include#includetypedefstruet{chardata;intweight;intparent;intichiId;intrchiId;}HTNode;typedefstructcharcd[50];intstart;}HCode;usingnamespacestd;intenter(charargv[])//进行读入操作fstreamin;ofstreamout;charc;intnumber二0;//字母个数置为0in.open("test,txt",ios::in

4、);//打开文件test,txtout.open("code,txt",ios:rune);//打开文件code,txt,如果不存在就新建一个,如果存在就清空if(!in.eof0)in»c;〃从test,txt中读取一个字符存入cprintf("原文本是:");while(!in.eof()){//文件不为空,循环读取一个字符cout«c;//将文件中的内容输出到屏幕上argv[number]=c;//存储c的值到数组number++;out«c;//将c中的字符存入文件code,txt中in»c;//从test,txt中读取一个字符存入

5、c}argv[number]=*Q';printf("");in.close;out.close;//使用完关闭文件return(number);//返回叶子节点数目voidCreateHT(HTNodeht[],intn)inti,j,k,Inode,rnode;doubIemini,min2;for(i=0;i<2*n-1;i++)ht[i].parent=ht[i].IchiId=ht[i].rchild=-1;//置初值for(i二n;i<2*n-1;i卄){min1=min2=32167;Inode=rnode=-1;for(k

6、二0;k<二i-1;k++)if(ht[k].parent==-1)if(ht[k].weight

7、t二i;}}voidCreateHcode(HTNodeht[]FHCodehcd[],intn){inti,f,c;HCodehc;for(i=0;i

8、ateHT(HTNodeht[],intn);//创建哈夫曼树voidCreateHcode(HTNodeht[],HCodehcd[],intn);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。