Изменения

Перейти к: навигация, поиск

Алгоритм LZW

2 байта убрано, 10:47, 28 октября 2011
м
Примечание
Оказывается, это возможно, если оговорить некоторые действия:
<br>
[[Файл:Image001.gif|left|Работа алгоритма LZW]]<br>
Мы знаем, что для каждого кода надо добавлять в таблицу строку, состоящую из уже присутствующей там строки и символа, с которого начинается следующая строка в потоке.
<br>
[[Файл:Image001.gif|left|Работа алгоритма LZW]]
<br>
 
Итак, кодер заносит первую «а» в строку, ищет и находит "а" в словаре. Добавляет в строку следующую "а", находит, что "аа" нет в словаре. Тогда он добавляет запись <5>: "аа" в словарь и выводит метку <0> ("а") в выходной поток. Далее строка инициализируется второй «а», то есть принимает вид "a?" вводится третья «а», строка вновь равна "аа", которая теперь имеется в словаре. Если появляется четвертая «а», то строка "aa?" равна "ааа", которой нет в словаре. Словарь пополняется этой строкой, а на выход идет метка <5> ("aa"). После этого строка инициализируется третьей «а», и т.д. и т.п. Дальнейший процесс вполне ясен. <br>
84
правки

Навигация