自力更生,在谭浩强老师的《c程序设计》中得到启示,想到下面的算法,只是随便写一下
,望高手给以指点(有地方写的不对别太介意):
for(j=1;j<=2;j++)
{
min=MAX;
for(x=0,x<=n-1;x++)
{
if (T[x].parent=0)
continue;
if
T[x].weight<min
min=T[x];
if j=1
* p1 =x;
else
* p2=x;
}
j=1?T[*p1].parent=0:T[*p2].parent=0
}
可能一开始是我说的太笼统了,没表达清楚,在此向各位关注过本帖的同志深表歉意
下面是对哈夫曼树的表示
#define n 100
#define m 2*n-1
typedef struct{
float weight;
int lchild,rchild,parent;
}HTNode;
typedef HTNode HuffmanTree[m]
所求函数
selectmin(t,i-1,&p1,&p2)/*在T[0……i-1]中选择两个权最小的根节点,其序号分别为p1p2*/
在这个函数之前
for(i=n,i<m;i++)