哈夫曼树的编写与输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ht[s1].parent=i;ht[s2].parent=i;
ht[i].LChild=s1;ht[i].RChild=s2;
}
}
int m;
m=2*n-1;
for(i=n+1;i<=m;i++)
{ ht[i]={0,0,0,0}; }
/*--------初始化完毕,对应算法步鄹(1)---------*/
for(i=n+1;i<=m;i++)
{
int s1,s2;
select(ht,i-1,&s1,$s2);
ht[i].weight=ht[s1].weight +ht[s2].weight ;
{
int i,k;
int n=0;
HuffmanTreBaidu Nhomakorabea rt;
for(k=0;k<=j;k++)
{
if(ht[k].parent ==0)
{ rt[k]=ht[k];
n=n+1;
}
}
for(k=0;k<n;k++)
{
for(i=k+1;i<n;i++)
{ if(rt[i].weight<=tr[k].weight )
/******************************************/
/*********哈夫曼树的编写与输出***********/
/******************************************/
/*用静态三叉链表实现哈夫曼树类型定义如下:*/
#define N 20
rt[k]=rt[i];
}
}
}
/*创建哈夫曼树的算法*/
void CrtHuffmanTree(HuffmanTree ht,int w[],int n)
{ /*构建哈夫曼树ht[M+1],w[]存放n个劝值*/
int i;
for(i=1;i<=n;i++)
{ ht[i]={w[i],0,0,0}; }
#define M 2*N-1
typedef struct
{
int weight;
int parent;
int LChild;
int RChild;
} HTNode,HuffmanTree[M+1];
/*select函数主体程序代码*/
void select(HuffmanTree ht,int j,& s1,& s2 )
相关文档
最新文档