Я сжал следующее сообщение: ababcbababaaaaaaa, используя алгоритм сжатия LZW.
С a=1;b=2;c=3 я получаю следующее сообщение: 1 2 4 3 5 8 1 10 11 1, что соответствует результату, который мой профессор получил в наших конспектах упражнений.
Однако, когда я пытаюсь распаковать сообщение, я получаю следующую последовательность событий:
Current: a ; Next: b ; Output: a ; AddToDict: ab=4;
Current: b ; Next: a ; Output: b ; AddToDict: ba=5;
Current: ab ; Next: c ; Output: ab ; AddToDict: abc=6;
Current: c ; Next: ba ; Output: c ; AddToDict: cb=7;
Current: ba ; Next: 8? ; Output: ? ; AddToDict: ?;
Как видите, моя проблема в том, что у меня еще нет 8 (которое должно быть bab) в словаре.
Что я делаю не так?
Полный словарь, полученный в результате сжатия,
(1=a;2=b;3=c;4=ab;5=ba;6=abc;7=cb;8=bab;9=baba;10=aa;11=aaa;12=aaaa)