dynamiczne kodowanie huffmana w c++

0

witam. Poszukuje implementacji dynamicznego kodowania huffmana w c++. zabrałem sie za to sam, ale pogubiłem sie we własnym kodzie. znalazłem w download ten plik http://download.4programmers.net/tmp/hufc02.zip ale z tą implementacją jest cos nie tak jak kompresuje plik mający 219 bajtów i tylko znaki a,b i c w środku dostaje plik wiekszy mający 229 bajtów. z kolei jak kompresuje sam kod źródłowy tego programu, dostaje plik mniejszy tzn z 5 868 bajtów na 5 632 bajtów, leczy przy rozkompresowywaniu sie program zawiesza i pisze w nieskoczonosc do pliku wyjściowego. rozkompreosowywanie tego pliku z literami a, b i c działa dobrze.

Prosił bym bardzo o jakas implementacje tego algorytmu najlepiej wlasnie w takiej formie tj konsolowa aplikacja. Prosze bardzo o jakis link, lub przesłanie na maila [email protected]

0

to juz mialem, z tego co rozumiem to ta implementacja szuka nie tylko pojedyńczych znaków, lecz takze ciagów powtarzających sie znaków. Mi chodzi o cos <ort>prostrzego</ort>...

Mówiąc prostszego mialem na mysli cos co działa na pojedynczych znakach. dobrze by bylo jak by byl tylko jeden plik wynikowy tzn bez podziału na plik z licznosciami prawdopodbienstwem wystapienia symboli i plik zakodowany.

prosze o pomoc. pozdrawiam

0

A może być schemat blokowy?
http://www.dspguide.com/CH27.PDF

0

generalnie to nie, wiem jak działa, bo jest dosyc prosty, ale chciał bym cos na gotowo, bo jak juz wczesniej pisałem pogubiłem sie we własnym kodzie. tzn nie robilem komentarzy, nazwy zmiennych i funkcji tez nie do końca sa zrozumiałe, a mialem miesieczna przerwe w kodowaniu i ogólnie rzecz biorąc musial bym pisac od poczatku, a jest mi ta implementacja potrzebna jako część mojego projektu, na Metody i języki programowania, która nie musi być pisana przeze mnie aczkolwiek jest konieczna, bo bez niej projekt traci troche sens.

Pozdrawiam

0

to spróbuj stąd:
http://217.173.195.9/~id02009/huff_enc.c
http://217.173.195.9/~id02009/huff_dec.c
przypomniało mi się, że miałem coś z poprzedniego semestru.
Wygląda na w mierę proste.

;)
// acha, te programy korzystają z biblioteki idc.h:
http://217.173.195.9/~id02009/idc.h

0

o cos takiego mi wlasnie chodzi, tylko ze przy kompilowaniu tego pod gcc na linuxie dostaje blad:

[email protected]:~$ gcc huff_enc.c -o huff_enc
/tmp/ccE71QdO.o(.text+0x211): In function main': : undefined reference togetcode'
/tmp/ccE71QdO.o(.text+0x460): In function main': : undefined reference tovalue'
/tmp/ccE71QdO.o(.text+0x523): In function main': : undefined reference tosort'
/tmp/ccE71QdO.o(.text+0x559): In function main': : undefined reference tohuff'
/tmp/ccE71QdO.o(.text+0x582): In function main': : undefined reference tofiles'
collect2: ld returned 1 exit status

skad ta bilbioteke wziąć, tzn definicje tych funkcji, bo w idc.h sa tylko prototypy.

0

ok, znalazłem. potrzebne byly jeszcze 2 pliki:

http://books.elsevier.com/com[...]SED_SOFTWARE/programs/imsub.c

http://books.elsevier.com/com[...]ESSED_SOFTWARE/programs/sub.c

dzieki wielkie jeszcze raz, masz u mnie piwo..

0

Heh, fajnie :)
Cieszę się, że udało Ci się znaleźć te pliki.

0

witam , mam plik huff_enc.c jak wczesniejszy forumowicz podal do pobrania. generalnie kod mozna znaleŹĆ w sieci i skompilowac. chcialbym prosic o pomoc w przeanalizowaniu tego kodu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0