Канонический алгоритм Хаффмана. Передача кодовой таблицы

Реализую канонический алгоритм Хаффмана и есть несколько вопросов по теоретической части, а именно по передаче информации для раскодирования. В качестве метода предлагается вместе с закодированными данными передавать символы алфавита и длины их канонических кодов, т.к. для восстановления канонической таблицы нам только длины кодов и нужны.

Пример: строка bbbaacd. Канонические коды: b 0 (1 бит) a 10 (2) c 110 (3) d 111 (3) Т.е. данные для раскодирования: b1a2c3d3. Тут возникает несколько вопросов.

1)Нужно ли передавать эту таблицу в одном файле вместе с закодированными по таблице данными (в конце/начале файла)? Есть ли реальные примеры?

2)Если да, то если в данных присутствуют цифры, как понять, где в нашей таблице символ алфавита (цифра), а где кол-во бит?

3)И, наконец, как понять, где находится граница между таблицей и закодированными данными?

Если все хранится в отдельных файлах (что, на мой взгляд, проще и логичнее), то последние 2 вопроса отпадают сами собой.


Ответы (0 шт):