Article View: pl.comp.programming
Article #217922Alg. kompresji LZW
From: 🇵🇱Jacek Marcin Jaworski🇵🇱
Date: Sat, 08 Feb 2025 19:05
Date: Sat, 08 Feb 2025 19:05
31 lines
1820 bytes
1820 bytes
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
Technical Details
Message-ID:
<m0po80Fo9ctU1@mid.individual.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!uni-berlin.de!individual.net!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: 🇵🇱Jacek Marcin Jaworski🇵🇱 <jaworski1978@adres.pl> Newsgroups: pl.comp.programming Subject: Alg. kompresji LZW Date: Sat, 8 Feb 2025 20:05:36 +0100 Organization: Energo Kod Lines: 31 Message-ID: <m0po80Fo9ctU1@mid.individual.net> Mime-Version: 1.0 X-Trace: individual.net PLH1ZSALrEPg9/L+fUEY6gUl+ROyW2LZWN80RuMpI/IvNyATbL Cancel-Lock: sha1:zA5MA/BJKspH+62CVaUuQ+8tYDA= sha256:MIGFEBUUeLuBfQus2kz/S1OElNcokkeXSB6V8vf0gII= User-Agent: Mozilla Thunderbird Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit