编程题

根据给定的 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 表示空)。

【正确答案】

【答案解析】