我正在努力实现霍夫曼压缩的有效实现,但它需要以一种独特的方式完成:我需要找到一种方法将我的霍夫曼树写入我的编码,然后再将其传递给解码器,至于在这个特定项目中,我们只允许将一个指针传递给解码器。我无法传递树本身,因为那样我就无法传递编码。
有没有人有一种很好的方法可以有效地将我的霍夫曼树存储在我的霍夫曼编码中?
我目前正在使用C ++实现这一点。
答案 0 :(得分:2)
你不能将霍夫曼树存储在你的霍夫曼编码中 - 解码器必须在解码前知道它。
您必须serialize您的霍夫曼树并将其添加到您的霍夫曼编码数据中。您的解码器必须在解码之前对树进行反序列化。
答案 1 :(得分:0)
您不希望或不需要传输树。您需要发送的只是每个符号的位数。从那里你可以在两端构建相同的canonical code。