HDU1053--哈夫曼树

#include 
#include 
#include 
struct { 
    int data; 
    int papa; 
}arr[1000]; 
  
int cmp(const void *a,const void *b) 
{ 
    return *(char *)a-*(char *)b; 
} 
  
int main() 
{ 
    int sum,s,i,k,len,p,min[2],vis[2],chang,j,pp; 
    char c,str[100]; 
    while(gets(str)){ 
        if(!strcmp(str,"END"))break; 
        k=0; 
        pp=len=strlen(str); 
        qsort(str,len,sizeof(char),cmp); 
        c=str[0]; 
        p=1; 
        for(i=1;iarr[i].data && arr[i].papa==-1) 
                { 
                    min[0]=arr[i].data; 
                    vis[0]=i; 
                } 
                for(i=0;iarr[i].data && i !=vis[0] && arr[i].papa==-1) 
                { 
                    min[1]=arr[i].data; 
                    vis[1]=i; 
                } 
                arr[k].data=min[0]+min[1]; 
                arr[vis[0]].papa=arr[vis[1]].papa=k; 
                arr[k++].papa=-1; 
        } 
        sum=0; 
        for(i=0;i


你可能感兴趣的:(acm)