我正在构建一个Python程序来使用霍夫曼树来压缩/解压缩文本文件。以前,我会将频率表一个.json文件存储在压缩文件旁边。当我读取压缩数据和.json时,我会从频率表重建解压缩树。我认为这是一个非常有说服力的解决方案。哈夫曼树中的唯一标识符节点
但是,我遇到了一个奇怪的问题,中等长度的文件将解压缩成看似随机的字符串。我发现问题发生在两个字符出现相同次数时。当我重建我的树时,任何具有匹配频率的角色都有可能被交换。对于大多数文件,特别是大文件和小文件,这不是问题。大多数信件比其他信件略多或略少。但是对于一些中等大小的文件,大部分字符出现的次数与导致乱码的另一个字符的次数相同。
有没有我的节点的唯一标识符,我可以用它来轻松地重建我的树?或者,我是否应该完全不同地接近树的写作?
1.哇,我不敢相信我没有意识到这一点。可以很容易地使用ASCII/Unicode命令来配合休息。 –