ch5_8.txt
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. #define M 50
  2. #define MAX 100
  3. typedef  struct
  4. {  int data;
  5.    int pa,lc,rc;
  6. }JD;
  7. void huffman(int n,int w[],JD t[])
  8. {  int i,j,k,x1,x2,m1,m2;
  9.    for(i=1;i<(2*n);i++)
  10.    {  t[i].pa=t[i].lc=t[i].rc=0;
  11.       if(i<=n)
  12.          t[i].data=w[i];
  13.       else
  14.          t[i].data=0;
  15.    }
  16.    for(i=1;i<n;i++)
  17.    {  m1=m2=MAX;
  18.       x1=x2=0;
  19.       for(j=1;j<(n+i);j++)
  20.       {  if((t[j].data<m1)&&(t[j].pa==0))
  21.          {  m2=m1;  x2=x1;
  22.             m1=t[j].data;  x1=j;
  23.          }
  24.          else if((t[j].data<m2)&&(t[j].pa==0))
  25.          {  m2=t[j].data; x2=j; }
  26.       }
  27.       k=n+i;
  28.       t[x1].pa=t[x2].pa=k;
  29.       t[k].data=m1+m2;
  30.       t[k].lc=x1;
  31.       t[k].rc=x2;
  32.    }
  33. }