Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:teme:teme-04 [2015/05/01 18:44]
alexandru.farcasanu
sd-ca:teme:teme-04 [2015/05/26 09:25] (current)
alexandru.farcasanu [Tema 4]
Line 1: Line 1:
 ====== Tema 4 ====== ====== Tema 4 ======
  
-Termen de predare: **Duminica24 Mai 2015, ora 23:55**+Termen de predare: **Luni ​25 ​Mai 2015, ora 23:55**
  
-Deadline hard: **Miercuri27 Mai, ora 23:55**+Deadline hard: **Joi28 Mai, ora 23:55**
  
 <note important>​ <note important>​
 **1 Mai** Adaugat precizare legata de reprezentantul unui nod. Actualizat arhiva de teste. ​ **1 Mai** Adaugat precizare legata de reprezentantul unui nod. Actualizat arhiva de teste. ​
 +
 +**23 Mai** Modificare deadline: 25 Mai.
 +
 +**24 Mai** Update script testare: limita de timp a fost marita la 100 de secunde.
 </​note>​ </​note>​
 ===== Obiective ===== ===== Obiective =====
Line 55: Line 59:
   * dacă probabilitate(Nod1) = probabilitate(Nod2),​ şi înălţime(Nod1) = înălţime(Nod2),​ atunci ne uitam la reprezentantii nodurilor (vezi definitie mai jos). Daca reprezentant(Nod1) < reprezentant(Nod2) atunci Nod1 > Nod2 (ordinea se inversează),​ si viceversa.   * dacă probabilitate(Nod1) = probabilitate(Nod2),​ şi înălţime(Nod1) = înălţime(Nod2),​ atunci ne uitam la reprezentantii nodurilor (vezi definitie mai jos). Daca reprezentant(Nod1) < reprezentant(Nod2) atunci Nod1 > Nod2 (ordinea se inversează),​ si viceversa.
  
-Practic, aceste reguli specifică ordinea în care se vor scoate elementele din coadă: se preferă cele cu probabilitate mică, iar dacă sunt mai multe cu aceeaşi probabilitate,​ le vom lua pe cele de pe nivelurile cele mai mici, pentru a păstra echilibrat arborele ​Huffman. Daca si inaltimile sunt egale, luam in considerare reprezentantul. Astfel vom avem un mod unic de a scoate elementele din coada prioritara.+Practic, aceste reguli specifică ordinea în care se vor scoate elementele din coadă: se preferă cele cu probabilitate mică, iar dacă sunt mai multe cu aceeaşi probabilitate,​ le vom lua pe cele de pe nivelurile cele mai mici, pentru a păstra echilibrat arborele. Daca si inaltimile sunt egale, luam in considerare reprezentantul. Astfel vom avem un mod unic de a scoate elementele din coada prioritara.
  
 **Reprezentantul** unui nod se defineste in felul urmator: **Reprezentantul** unui nod se defineste in felul urmator:
Line 121: Line 125:
 ^Camp|**K**| **V** | **N** | **L**| ^Camp|**K**| **V** | **N** | **L**|
 ^Semnificatie|numarul de noduri din arbore| arborele serializat | dimensiunea fisierului original | fisier comprimat| ^Semnificatie|numarul de noduri din arbore| arborele serializat | dimensiunea fisierului original | fisier comprimat|
-^Tip/​Dimensiune | 1 * uint16_t | K * HuffmanSerializedNode | 1 * uint32_t | sir de biti de lungime variabila ​|+^Tip/​Dimensiune | 1 * uint16_t | K * HuffmanSerializedNode | 1 * uint32_t | sir de biti ce reprezinta fisierul comprimat ​|
  
 ===== Testare ===== ===== Testare =====
Line 141: Line 145:
  
 ===== Alte precizari ===== ===== Alte precizari =====
 +  * Atunci cand se construieste un nod nou, nodul cel mai prioritar din coada va deveni fiul **stang** al noului nod.
 +  * Serializarea arborelui se va face printr-o parcurgere in **preordine**.
   * Se recomanda ca atat citirea cat si scrierea sa se realizeze cu functiile fread si fwrite. ​   * Se recomanda ca atat citirea cat si scrierea sa se realizeze cu functiile fread si fwrite. ​
   * Se recomanda folosirea tipurile de date uint8_t, uint16_t si uint32_t in cazul citirii si scrierii din fisiere. ​   * Se recomanda folosirea tipurile de date uint8_t, uint16_t si uint32_t in cazul citirii si scrierii din fisiere. ​
sd-ca/teme/teme-04.1430495042.txt.gz · Last modified: 2015/05/01 18:44 by alexandru.farcasanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0