使用Java,如何获得霍夫曼树的编码树



给定一个构建的树和它工作所需的所有变量,我只需要了解如何从霍夫曼树中获得编码树。

更具体地说,我需要返回霍夫曼树的字符串编码。没有参数传递给函数。它只是一个getHuffmanTreeEncoded((函数,返回Tree的编码字符串,我不确定该如何处理。

我不提供这个问题的代码,因为剩下的都已经完成了,而且时间很长/对于学校来说。。。我想我最好用语言来理解。

我需要穿过这棵树吗?我需要递归循环吗?我需要传递一个字符串变量和霍夫曼树字符串编码。假设所有东西的函数和结构都已经存在(树、获得编码的测试、优先级队列实现等(,我该怎么做呢?要获得霍夫曼树的字符串,一般需要采取哪些步骤?

-感谢

我想你要问的是:如果我有符号,我如何使用霍夫曼树来生成该符号的代码。

你没有。对于你信息中的每一个符号来说,这都是一件可怕的事情。相反,您要做的是递归遍历整个树一次,然后在每个叶上,将符号及其代码添加到表中。放弃树并使用表进行编码。

您甚至不需要这样做,因为您可以忽略0和1对左右分支的赋值中内置的实际代码。然而,这种分配是完全任意的,任何其他分配都会给你同样的压缩。您需要从霍夫曼树中获得的唯一信息是每个符号的代码长度(以位为单位(。递归遍历树,生成一个符号及其代码长度的表。

然后可以使用规范的霍夫曼代码进行编码。

最新更新