一、定义
哈夫曼树(Huffman Tree)是在叶子结点和权重确定的情况下,带权路径长度最小的二叉树,也被称为最优二叉树。
二、代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 30
#define Max 2*N-1
typedef char **HuffmanCode;
typedef struct HTNode
{
double weight;
int parent;
int lchild,rchild;
}HTNode,*HuffmanTree;
//在下标为1到i-1的范围找到权值最小的两个值的下标,其中s1权值小于s2
void Select(HuffmanTree HT,int n,int s1,int s2)
{
int i = 1;
int min;//找第一个最小值
for(;i<=n;i++)
{
if(HT[i].parent == 0)
{
min = i;
break;
}
for