如何在java中导出用于霍夫曼解码/编码项目的树数据结构



我有一个项目作为作业,我还没有实现它,但我已经想好了它的想法,但最后一步是我甚至不知道如何实现的。这就是我想要的项目:

我想使用java创建一个基于文本的压缩模型。我将创建一个霍夫曼编码器和解码器,并将这些程序存储在两台计算机中:PC1和PC2。

现在在PC1中,我将给出一个"data.txt"文件作为我的霍夫曼编码器程序的输入,它将创建另一个名为"binary.txt"的文件,其中包含0和1。现在,我不会传输"data.txt"文件,而是通过电子邮件将"binary.txt"文件发送到PC2,并使用那里的解码器java程序,我将尝试重新创建"data.txt。"这样,我就可以使用霍夫曼机制压缩我的文件。

所以问题是,我是java的新手(目前还没有吓到我),我不知道如何从PC1导出树数据结构和"binary.txt"文件,因为对于霍夫曼解码(稍后在PC2中),我需要访问在PC1中创建的霍夫曼树,那么我该如何解决或创建这个项目呢?

有没有其他更好的方法来实施这个项目?哈希映射或显示树或任何其他数据结构?

感谢

如果创建一个规范的霍夫曼表示,则只能传输代码长度。解码器可以根据这些重新创建树。

您不需要将Huffman树导出到binary.txt文件中。你需要一个Map,它将文本中的所有符号映射到(0,1)-字符串-用于编码,你需要一张反向Map-用于解码。您应该使用Huffman算法来构建树,然后使用此树来填充Map。之后你就可以忘记那棵树了。

因此,您的"binary.txt"文件必须仅包含某种形式的反向映射,解码器可以理解。

最新更新