我正在研究在 C++ 中实现 LZW 压缩,但不确定最佳字典实现。
哈希表很有意义,但我不明白我如何能够“重新分配”值。如果表已满,我需要能够开始覆盖以前的(最旧的)多字符字典条目。哈希表需要我跟踪这些、找到它、删除它,然后插入新的。
有什么建议吗?
最佳答案
Unix compress utility (source code link)使用双重哈希和周期表清除。
如果您想要快速压缩和解压缩,那么有比 LZW 更好的选择, 已经过时了。您应该查看 zlib 中的快速 1 级压缩(可能已经在你的机器上),LZO , 和 lz4 .
除了教学或娱乐值(value)之外,没有理由编写新的 LZW 代码。它仅具有历史意义。您还可以研究压缩实用程序以获取此类说明和娱乐。
关于c++ - LZW压缩&字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601596/