Я пытаюсь лучше понять, как работает декодер Хаффмана.У меня есть таблица кодов, но я с трудом пытаюсь понять, как будет работать декодер из-за неоднозначности в двоичной строке.
(я изучаю это в рамках подготовки к моему последнему году в универе)
моя таблица:
Data Hcode
0, 0
1, 1
2, 10
3, 11
17, 100
18, 101
19, 110
29, 111
Если у меня есть строка кода Хаффмана, такая как 010011, я могу вернуть много разных комбинаций данных, так как я могу различить?
Я понимаю логику Хаффмана в BSTпредставление, и вы идете по пути к данному листу, который напоминает код для данного заданного значения между (0-255 (ascii)), но я все еще не знаю, как вы можете различить возвращая данные: 0,1,0 или данные:0,17
действительно ли мне нужно применять 2-битные коды к данным 0 и 1?(00 и 01)
Надеюсь, я объяснил лучшее, что я могу XD
Если вам интересно, как я сгенерировал таблицу, вы убьете меня, потому что я не использовал древовидную логику для ее генерации.Хотя я отсортировал данные (случайные байты) по частоте - я сгенерировал H-коды, конвертировав номер позиции элемента в двоичный код (хенси, почему я назвал этот пост «Бедный Мэн Хаффман»).
Большое спасибо за любые советы.