Изменения
мСтрока 95:
Строка 95:
− +
Строка 105:
Строка 105:
− +
− +
→Канонические коды Хаффмана
# Повторяем, в куче слева не останется 1 элемент.
# Повторяем, в куче слева не останется 1 элемент.
# В правой части массива получились ссылки на элементы, объеднияющие 2 символа. Поэтому идём по массиву по ссылкам, инкрементируя уровень погружения.
# В правой части массива получились ссылки на элементы, объеднияющие 2 символа. Поэтому идём по массиву по ссылкам, инкрементируя уровень погружения.
# Количество переходов по ссылкам будет длина кода Хаффмана.
# Количество переходов по ссылкам будет длиной кода Хаффмана.
|}
|}
# Самый первый символ таблицы кодируется нулями.
# Самый первый символ таблицы кодируется нулями.
# В каждом блоке символы будут находиться в лексикографическом порядке.
# В каждом блоке символы будут находиться в лексикографическом порядке.
# Коды в блоке будут иметь двоичный вид и отличаться на 1.
# Коды в блоке будут иметь двоичный вид и различаться на 1.
# При переходе в следующий блок, биты кода самого последнего символа отсекаются и добавляется 1.
# При переходе в следующий блок биты кода самого последнего символа отсекаются и добавляется 1.
|}
|}