在哈夫曼树的构造算法中,遇到不懂的问题,求大牛帮帮忙!
在哈夫曼树的构造算法中,void CreateHT(HTNode ht[],int n){
int i,j,k,lnode,rnode;
double min1,min2;
for(i = 0;i < 2*n-1;i++)
ht[i].parent = ht[i].lchrld = ht[i].rchrld = -1;
for(i = n;i < 2*n-1;i++)
{
min1 = min2 = 32767;
lnode = rnode = -1;
for(k = 0;k<i=1;k++)
if(ht[k].parent == -1)
{ if(ht[k].weight < min1)
{ min2 = min1;rnode = lnode;
min1=ht[k].weight;lnode = k;
}
else if(ht[k].weight<min2)
{
min2 = ht[k].weight;rnode = k;
}
ht[i].weight = ht[lnode].weight + ht[rnode].weight;
ht[i].lchrld = lnode;ht[i]rchrld = rnode;
ht[lnode].parent = i;ht[rnode].parent = i;
}
}
其中的 if(ht[k].weight < min1)
{ min2 = min1;rnode = lnode;
min1=ht[k].weight;lnode = k;
这段代码是什么意思,一直看不懂....求大牛指点迷津!!
[此贴子已经被作者于2015-11-29 12:33编辑过]