??·ò?üê÷±à??μ?êμ??
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-30
strcpy((*HC)[i],&cd[start]); ???????? } ???? } } void Select(HuffmanTree HT,int Count,int *s1,int *s2) /*/(*s1) is smallest,(*s2) is smaller.*/ { ???? int i; ???? unsigned int temp1=0; ???? unsigned int temp2=0; ???? unsigned int temp3; ???? for(i=1;i<=Count;i++) ???? { ???????? if(HT[i].Parent==0) ???????? { ???????????? if(temp1==0) ???????????? { ???????????????? temp1=HT[i].Weight; ???????????????? (*s1)=i; ???????????? } ???????????? else ???????????? { ???????????????? if(temp2==0) ???????????????? { ???????????????????? temp2=HT[i].Weight; ???????????????????? (*s2)=i; ???????????????????? if(temp2<temp1) ???????????????????? { ???????????????????????? temp3=temp2; ???????????????????????? temp2=temp1; ???????????????????????? temp1=temp3; ???????????????????????? temp3=(*s2); ???????????????????????? (*s2)=(*s1); ???????????????????????? (*s1)=temp3; ???????????????????? } ???????????????? } ???????????????? else ???????????????? { ???????????????????? if(HT[i].Weight<temp1) ???????????????????? { ???????????????????????? temp2=temp1; ???????????????????????? temp1=HT[i].Weight; ???????????????????????? (*s2)=(*s1); ???????????????????????? (*s1)=i; ???????????????????? } ???????????????????? if(HT[i].Weight>temp1&&HT[i].Weight<temp2) ???????????????????? { ???????????????????????? temp2=HT[i].Weight; ???????????????????????? (*s2)=i; ???????????????????? } ???????????????? } ???????????? } ???????? } ???? } } int LookFor(char *str,char letter,int count) { ???? int i; ???? for(i=0;i<count;i++) ???? { ???????? if(str[i]==letter) return i; ???? } ???? return -1; } void OutputWeight(char *Data,int Length, ?????????????????? char **WhatLetter, ?????????????????? int **Weight,int *Count) { ???? int i; ???? char* Letter=(char*)malloc(Length); ???? int* LetterCount=(int *)malloc(Length); ???? int AllCount=0; ???? int Index; ???? int Sum=0; ???? float Persent=0; ???? for(i=0;i<Length;i++) ???? { ???????? if(i==0) ???????? { ???????????? Letter[0]=Data[i]; ???????????? LetterCount[0]=1; ???????????? AllCount++; ???????? } ???????? else ???????? { ???????????? Index=LookFor(Letter,Data[i],AllCount); ???????????? if(Index==-1) ???????????? { ???????????????? Letter[AllCount]=Data[i]; ???????????????? LetterCount[AllCount]=1; ???????????????? AllCount++; ???????????? } ???????????? else ???????????? { ???????????????? LetterCount[Index]++; ???????????? } ???????? } ???? } ???? for(i=0;i<AllCount;i++) ???? { ???????? Sum=Sum+LetterCount[i]; ???? } ???? (*Weight)=(int*)malloc(AllCount); ???? (*WhatLetter)=(char*)malloc(AllCount); ???? for(i=0;i<AllCount;i++) ???? { ???????? Persent=(float)LetterCount[i]/(float)Sum; ???????? (*Weight)[i]=(int)(1000*Persent); ???????? (*WhatLetter)[i]=Letter[i]; ???? } ???? (*Count)=AllCount; } |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: C/C++中字符串常量的不相等性及字符串的Copy下一篇: BCB日常使用小集锦
关于??·ò?üê÷±à??μ?êμ??的所有评论