问题描述
我正在编写霍夫曼编码/解码算法,但遇到了存储霍夫曼树占用大量空间的问题。目前,我正在将树转换为hashMap,例如-> hashMap
解决方法
您不需要树来进行编码。您所需要做的就是每个符号的位长以及排序符号的方法。参见Canonical Huffman Code。
实际上,您所需要做的只是按照位长排序的符号,在位长内按符号排序,然后是每个长度的代码的 number 。仅需这两件事,您就可以进行编码。
我正在编写霍夫曼编码/解码算法,但遇到了存储霍夫曼树占用大量空间的问题。目前,我正在将树转换为hashMap,例如-> hashMap
您不需要树来进行编码。您所需要做的就是每个符号的位长以及排序符号的方法。参见Canonical Huffman Code。
实际上,您所需要做的只是按照位长排序的符号,在位长内按符号排序,然后是每个长度的代码的 number 。仅需这两件事,您就可以进行编码。