typedef int Status;
typedef struct
{
unsigned int weight; //权重
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree; //动态分配数组存储赫夫曼树
typedef char **HuffmanCode; //动态分配数组存储赫夫曼编码表
/*******************************声明部分****************************************/
void HuffmanCoding_1(HuffmanTree *HT,HuffmanCode *HC,int *w,int n);
//w存放n个字符的权重值(均>0),构造赫夫曼树HT,并求出n个字符的赫夫曼编码HC
void Select (HuffmanTree *HT,int i,int *S1,int *S2);
//在HT[1...n]中选择parent为0且weight最小的两个结点,其序号分别为S1,S2
void HuffmanCoding_2(HuffmanTree *HT,HuffmanCode *HC,int *w,int n);
//w存放n个字符的权重值(均>0),构造赫夫曼树HT,并求出n个字符的赫夫曼编码HC
void PrintfCode(HuffmanCode HC,int n);
//打印赫夫曼编码
/******************************