Kezdőoldal » Számítástechnika » Programozás » Bináris fával esetleg más...

Bináris fával esetleg más módon van megoldva ez a Huffman-algoritmus?

Figyelt kérdés

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?

[link]



2021. nov. 21. 08:42
1 2
 11/13 anonim ***** válasza:

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.

2021. nov. 21. 17:53
Hasznos számodra ez a válasz?
 12/13 A kérdező kommentje:

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?

2021. nov. 21. 18:58
 13/13 anonim ***** válasza:

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:

2021. nov. 22. 17:12
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!