Sunteți pe pagina 1din 2

Facultatea de Matematic i Informatic

Algoritmi i Structuri de Date Laborator


Anul I, semestrul I, an universitar 2013/2014
Grupe 1412, 1421, 1431, 1451
Web: http://laborator.wikispaces.com
Tema 10
17 decembrie 2013

Probleme obligatorii
Termen de predare : Laboratorul din sptmna 14 (13 17 ianuarie 2014)
(5 p) 1. (Algoritmul lui Dijkstra, Cormen capitolul 25) Se dau n orae, care pot fi conectate
sau nu printr-un drum direct. n caz afirmativ, se d i costul utilizrii acelui drum. S se
spun care este costul minim pentru a ajunge dintr-un oras k1 ntr-un ora k2 (eventual
trecnd prin alte orae intermediare).
(5 p) 2. (Algoritmul lui Kruskal pentru determinarea arborelui partial de cost minim, Cormen capitolul 24) Se dau n orae i distanele dintre oricare dou. Se dorete conectarea
acestora cu fire de telefon astfel nct sa fie utilizat o lungime ct mai mic de cablu, dar s
poata fi iniiat o convorbire ntre oricare dou orae.
Not: Este obligatorie citirea datelor de intrare dintr-un fiier.

Probleme suplimentare
Termen de predare : Laboratorul din sptmna 14 (13 17 ianuarie 2014)
(5 p) 3. (Algoritmul Floyd-Warshall, Cormen capitolul 26.2) Se dau n orae, care pot fi
conectate sau nu printr-un drum direct. n caz afirmativ, se d i costul utilizrii acelui drum.
S se spun care este costul minim pentru a ajunge din orice ora n oricare alt ora,
folosind algoritmul Floyd-Warshall.
(3 p) 4. S se fac o sortare topologic a unui graf orientat aciclic (topological sort - Cormen, capitolul 23.4).
(5 p) 5. Scriei un algoritm care s construiasc un arbore Huffman pentru un alfabet cu
ponderi dat, arbore reprezentat n aa fel nct s poat fi folosit att la codificare, ct i la
decodificare. Scriei proceduri care fac, la cerere, codificarea i decodificarea.

Algoritm de construcie a arborelui Huffman


Pas 1. Iniializare :
- fiecare caracter reprezint un arbore format dintr-un singur nod;
- organizm caracterele ca un min-heap, n funcie de frecvenele de apariie;
Pas 2. Se repet de n-1 ori :
- extrage succesiv X i Y, dou elemente din heap
- unific arborii X i Y :
- creaz Z un nou nod ce va fi rdcina arborelui
- Z^.st := X
- Z^.dr := Y
- Z^.frecv := X^.frecv+Y^.frecv
- insereaz Z n heap;
Pas 3. Singurul nod rmas n heap este rdcina arborelui Huffman. Se genereaz codurile
caracterelor, parcurgnd arborele Huffman.
foloseste asta sa compresezi
100mb catre o dimensiune mai mica
decat 16mb (aduti aminte competitia aia)
si premiul ala

S-ar putea să vă placă și