Bináris fával esetleg más módon van megoldva ez a Huffman-algoritmus?
Ez a Huffman-kódolás bináris fával, vagy más módon van megoldva?
Hányféleképpen lehet megvalósítani ezt az algoritmust, van egyszerűbb megvalósítás, a működését hogy lehetne megérteni?
Hátha ez még segít:
Ha a fentieket nézzük, akkor a lalalala helyett a lolalola string eltárolásához a fát úgy kéne felépíteni, hogy a gyökér és a jobb oldal mellé kerülne egy bal oldal is, amiben az o betű kapna helyet.
gyökér: l
jobb: a (1)
bal: o (0)
A leíró bitsorozat pedig 0,1,0,1 lenne, mivel a gyökér elolvasása után először nem jobbra, hanem balra kéne lépni, ez pedig ugye, az o betűhöz vezet.
Egyébként, hogy a kérdésedre is választ kapj, igen, az általad linkelt kód is bináris fával dolgozik.
Azért olyan érthetetlen, mert az már nem az elvet mutatja be, hanem, gyakorlati tömörítő. A bitekkel való szórakozás meg sok kódsort igényel.
------------------
Az egész huffmannak az a lényege, hogy a fix, nyolc bites kódokkal leírt adatokat elemzi és a gyakrabban előfordulókhoz rövidebb kódot, a ritkábban előfordulókhoz meg hosszabbakat rendel.
Az ASCII kódtáblában minden karakter nyolc bites.
Na ezt a nyolc bitet ki lehet cserélni két, három, négy bites kódokra is.
Hát ezt csinálja a Huffman enkóder.
Ha egy szövegben sok az E, akkor az kap rövid, mondjuk két bites kódot. Ha sok mellette az A akkor az is rövidet fog kapni és így tovább.
A bináris fa pedig e-szerint épül fel és az egyesek, nullák zuhatagát, hosszú sorát (ez maga a tömörített adat) csak arra használjuk, hogy a bináris fát olvassuk vele. Jöhet egymás után a sok bit, nem kell végjel, határolójel, semmi, mert a bináris fa a saját struktúrájával eleve megszabja egy-egy kód elejét és végét.
Nagyon szépen köszönöm ezt a rendkívül részletes, nagyon magyarázó leírást.
Az amatőr kérdésért elnézést kérek, a Rosetta oldalán a linkben a sok nyelv közt merre találom az algoritmus mondatszerű leírását?
Ott ez alatt van az a pár számozott lépés, meg while ciklus, stb:
A Huffman encoding can be computed by first creating a tree of nodes:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!