Как распаковать файл, закодированный Хаффманом? - PullRequest
0 голосов
/ 10 апреля 2020

Итак, когда я построил свое дерево Хаффмана и сжал файл в соответствующий код каждого символа, как мне go распаковать файл? В сжатый файл я должен вставить некоторую информацию, представляющую дерево Хаффмана, построенное для распаковки файла. Сначала я думал о сохранении символа с его значением, например:

a: 110 и b: 11, например. Однако, читая сжатый файл, как бы я отличил a от b, если a и b начинаются с 11?

Я не чувствую, что мой метод сработает, у кого-нибудь есть идеи получше?

1 Ответ

0 голосов
/ 10 апреля 2020

Вы неправильно понимаете кодировку Хаффмана. Любой символьный код в таблице кодированных кодов Хаффмана не должен быть префиксом других символов. Если «a» в вашем коде равно 110, «b» никогда не должно начинаться с 1, 11 или 110. Каждый из символов не должен иметь общий префикс.

...