- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 树的变成习题
?实验题目(共6题, 第1题)
标题: Huffman树 时?限: 1000?ms 内存限制: 10000?K 总时限: 3000?ms 描述: Huffman树
对输入的英文大写字母进行统计概率 然后构建哈夫曼树,输出是按照概率降序排序输出Huffman编码。 输入: 大写字母个数 n
第一个字母 第二个字母 第三个字母 ...? 第n个字母 输出: 字母1 出现次数 Huffman编码
字母2 出现次数 Huffman编码
字母3 出现次数 Huffman编码
…
字母n 出现次数 Huffman编码 输入样例: 10
I I U U U I U N U U 输出样例: U 6 1
I 3 01
N 1 00
? 提示: 来源: #include?stdio.h#include?stdlib.h#include?string.h#define?MAX??27#define?MAX_INT??99999typedef?struct{????int?weight;????int?parent,lchild,rchild;}?HTNode,*HuffmanTree;typedef?char?**HuffmanCode;typedef?struct?Charnode{????char?c;????int?weight;}?CharNode,*CharNodePtr;CharNode?*b;int?Chat_get(){????char?c;????int?j=0;????int?m;????int?i;????scanf(%d,m);????getchar();????b=(CharNodePtr)malloc(sizeof(CharNode)*MAX);????int?a[MAX];????for(i=0;?iMAX;?i++)????{????????a[i]=0;????}????for(i=0;?im;?i++)????{????????scanf(%c,c);????????getchar();????????a[c-A]++;????}????for(i=0;?i26;?i++)????{????????if(a[i]!=0)????????{????????????b[j].c=char(i+A);????????????b[j].weight=a[i];????????????j++;????????}????}????return?j;}int?min(HuffmanTree?t,int?i){????int?j,flag;????int?k=MAX_INT;????for(j=1;?j=i;?j++)????????if(t[j].weightkt[j].parent==0)????????????k=t[j].weight,flag=j;????t[flag].parent=1;????return?flag;}void?select(HuffmanTree?t,int?i,int?s1,int?s2){????s2=min(t,i);????s1=min(t,i);}void?PrintHuffmanTree(HuffmanTree?HT,HuffmanCode?HC,?int?n){????int?i,?c,?cdlen;????char?*cd;????HC=(HuffmanCode)malloc((n+1)*sizeof(char*));????cd=(char*)malloc(n*sizeof(char));????c=2*n-1;????cdlen=0;????for(i=0;?i=c;?++i)?HT[i].weight=0;????while(c)????{????????if(HT[c].weight==0)????????{????????????HT[c].weight=1;????????????if(HT[c].lchild==0??HT[c].rchild==0)????????????{????????????????HC[c]=(char?*)malloc((cdlen+1)*sizeof(char));????????????????cd[cdlen]=\0;????????????????strcpy(HC[c],cd);????????????}????????????if(HT[c].lchild!=0)????????????{???????
文档评论(0)