哈夫曼编码(算法)
给个最简单的例子,若给定数组[1,2,3,4,5],如何获得哈夫曼树?
根据哈夫曼的编码方法(假设大家都会),可以得到哈夫曼树如上所示
可以给出伪代码如下:
Change_Array_To_Huffman(A[n]) { BinaryTree *T[n]; BinaryTree *B; for(i : from 1 to n) { T[i]->data = A[i]; T[i]->left = Null; T[i]->right = Null; } for(i : from 1 to n) { select k1 & k2 as non-empty minimum-data index; B->data = T[k1]->data + T[k2]->data; B->left = T[k1]; B->right = T[k2]; T[k1] = B; T[k2] = Null; } return B; }
伪代码可自行进行扩展,以上!