-
1. Data: 2025-02-08 20:05:36
Temat: Alg. kompresji LZW
Od: ??Jacek Marcin Jaworski?? <j...@a...pl>
Czołem!
W ks. pt. "Alg., Struktury Danych i Techniki Prog." aut. Piotra
Wróblewskiego, wyd. 6, przez Helion, w 2019r., na s. 349 podaje, cytat:
"Kodowanie w metodzie LZW można opisać algorytmem w pseudokodzie:
z = NULL;
while(czytaj znak k) // aż strumień wejściowy się wyczerpie
if (zk ? SLOWNIK)
// zk jest ciągiem złożonym z konkatenacji z i k
z = zk;
else{
dodaj zk do SOWNIKA
wypisz kod dla z;
z = k; // ostatni znak jest początkiem nowego ciągu
}"
Mi się wydaje, że w przypadku spełnienia
if (zk ? SLOWNIK)
nie jest wypisywany kod dla z. Tak samo podaje
https://pl.wikipedia.org/wiki/LZW .
Uzasadnienie moich wątpliwości:
W trakcie działania alg. buduje słownik i skompresowany strumień
wynikowy (jest to "wypisz kod dla z;"). Wynikiem działania alg. jest ta
para. Słownik bez strumienia ani strumień bez słownika są bez użyteczne.
Ja widzę, że niektóre dane w strumieniu wynikowym są pominięte (gdy "zk
? SLOWNIK").
Co o tym myślicie?
Jacek Marcin Jaworski