- 博客(0)
- 资源 (1)
- 收藏
- 关注
二叉树的3种遍历及哈夫曼树的建立及哈夫曼编码
void CreateHuffmanTree(HuffmanTree &HT;,int n){
int m,j;
m=2*n-1; //节点
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));//0号节点不使用
for(int i=1;i<=m;++i){
HT[i].parent=HT[i].lchild=HT[i].rchild=0;
}
for(i=1;i<=n;++i){
printf("输入权值\n");
scanf("%d",&HT;[i].weight);
}
HT[0].weight=m; // 用0号节点保存节点数量
for(j=n+1;j<=m;++j){ //建立HuffmanTree
int s1,s2;
Select(HT,j-1,s1,s2);
HT[s1].parent=HT[s2].parent=j;
HT[j].lchild=s1;HT[j].rchild=s2;
HT[j].weight=HT[s1].weight+HT[s2].weight;
}
}
2017-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人