typedef struct hauman
{
int data;
int parent,ld,rd;
}hcode;
int w[]={7,19,2,6,32,3,21,10};
void hum(hcode ht[],int n,int w[])
{
int i, j,z;
for(i=0;i<2*n;i++)//初始化
{
h[i].parent=h[i].ld=h[i]=0;
if(i<n){h[i].data=w[i];}
else
{ h[i].data=0;
}
下面,是建树了哦
所以在这里定义变量,本想在开始定的,所以用多少定多少吧,
int m,n,x,y;
for(i=0;i<n;i++)
{
m=n=maxfine; x=y=0;
for(j=0;j<n+i;j++)//这个选择最小
{
if(h[i].data<m&&h[i].parent==0)
{n=m;y=x;m=h[i].data;x=j;}//这个选择次小
else if(h[j].data<n&&h[i].parent==0)
{ n=h[j].data;y=j;}
h[x].ld=x;
h[y].rd=y;
h[x].parent=n+i;
h[n+i].ld=x;
h[n+i].rd=y;
}
}
}
}感觉差不多了,