编写函数,对于指定的权值数组(值均为正整数),计算并返回对应的哈夫曼编码。 注意: 1)为保证编码的惟一性,约定取小、次小值时,从前向后依次查找。 2)构造一个新树时,较小的置于左边,不小的置于右边。 3)新合成的树向后边追加(置于森林的尾部)。 4)每个权值对应一个编码(按原始顺序),一个编码即一个由0,1组成的字符串,多个编码构成一个字符串数组,要求返回这个字符串数组的首地址(作为二级字符指针),编码的个数(即数组的长度)是已知的,不需要返回。 5)存储编码用的数组空间,需要用malloc()动态申请。
在这里描述函数接口。例如:
char** huffmanCode (int w[],int N);
其中 w 和 N 都是用户传入的参数。 w 的是权值数组的初地址, N 是权值数组的长度。函数以二维指针的形式返回字符串数组的首地址,存储编码用的数组空间,需要用malloc()动态申请(空间的释放由主调函数完成)。