快速业务通道

??·ò?üê÷±à??μ?êμ??

作者 佚名技术 来源 程序设计 浏览 发布时间 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号