Seminarski rad: UÄenje algoritama u Pythonu - phy.hr - Prijava
Seminarski rad: UÄenje algoritama u Pythonu - phy.hr - Prijava
Seminarski rad: UÄenje algoritama u Pythonu - phy.hr - Prijava
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
itova. Pohlepni algoritam koristi prioritet red za izdvajanje dva čvora (list ili interni), s<br />
najnižim frekvencijama, dodjeljuje novi čvor čija težina je zbroj dva, i umeće novi čvor<br />
natrag u red prioriteta. Algoritam završava kad prioritet red uklanja zadnji čvor, koji<br />
postaje korijen stabla Huffman. Niz bitova za svako slovo može biti proizveden od<br />
strane poprijeko Huffman binarno stablo, gdje je uzimanje lijevoga kraka rezultat u '0',i desna<br />
grana rezultat u '1'.<br />
Na primjer, pretpostavimo da je naš ulaz skup znakova s pripadajućim frekvencija:<br />
'a': 45%<br />
'b': 13%<br />
'c': 12%<br />
'd': 16%<br />
'e': 9%<br />
'f': 5%<br />
Huffman algoritam konstruira stablo usporeĎujući dva elementa s najmanje<br />
frekvencije, stvara novi unutarnji čvor čija je frekvencija jednaka njihovom<br />
zbroju, u red prioriteta. Rezultat je stablo (sl. 1) koje definira promjenljive duljine koda<br />
za svaki znak. Lijevo grane su označene 0, a desno grane su označeni 1, a Huffman kod<br />
za znak se jednostavno niz stazu natpiše iz korijena do listova. Npr., kodiranje:<br />
'a': 0<br />
'b': 1 0 0<br />
'c': 1 0 1<br />
'd': 1 1 0<br />
'e': 1 1 1 0<br />
'f': 1 1 1 1<br />
Slika 1 Primjer Huffman stabla<br />
Budući da smo već prioritet red, ono što nam nedostaje je specijalizirano binarno<br />
stablo. Zahtjevi su:<br />
čvor nultog stupnja mora biti u stanju da predstavlja pismo, bude kodirana, a njegova<br />
učestalost.<br />
unutarnji čvor mora imati dvoje djece, i ona takoĎer mora imati težinu koja je jednaka<br />
zbroju za svoju djecu.<br />
red prvenstva mora biti u stanju „enqueue“ i „dequeue“ i lišće i unutarnje čvorove i<br />
usporediti ih na temelju težine<br />
6