根据给定的 n 个权值可以构造一颗哈夫曼树。若哈夫曼树采用顺序存储结构, 每个结点的数据结构采用如下格式。
Typedef struct
{ unsigned int weight; //结点的权值
unsigned int parent,lchild,rchild;//分别存放双亲、左右孩子的下标 }Huffman;
试设计如下算法 CreatHuffman,根据给定的 n 个权值构造一颗哈夫曼树。
void CreatHuffman(Huffman HT[], int n, int w[]);
其中:HT 为构造的哈夫曼树,n 表示权值个数,w 用来存储所有权值
下图是根据权值 7,5,2,4 所构造出来的哈夫曼树(-1 表示空)。
