typedef struct TreeNode* HuffmanTree;
struct TreeNde {
int Weighy;
HuffmanTree Left, Right;
};
HuffmanTree Huffman(MinHeap H)
{ //假设H->Size个权值已经存在H->Elements[]->Weight里
int i;
HuffmanTree T;
BuildMinHeap(H);//将H->Elements[]按权值调整为最小堆
for (i = 1; i < H->Size; i++)
{
T = malloc(sizeof(struct TreeNode));
T->Left = DeleteMin(H);
T->Right = DeleteMin(H);
T->Weight = T->Left->Weight + T->Right->Weight;
Insert(H, T);
}
T = DeleteMin(H);
return T;
}
哈夫曼树的构造
最新推荐文章于 2022-11-23 23:24:03 发布