Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Arbori de compresie de tip Huffman
- text="Anaaremere"
- [phase 1]
- Pentru textul de compresat calculez frecventele de aparitie a caracterelor
- care apar in text
- Utilizez 2 vectori
- C[i]=k inseamna ca incepand de la prima pozitie in text un al i-lea
- caracter distinct este k ( char )
- V[i]=p frecventa de aparitie al caracterului C[i] este p
- Obs :
- Numarul locatiilor completate in C si V este identic
- i.e. numarul caracterelor distincte din text
- */
- #include<fstream>
- #include<string.h>
- char *text; // sirul de caractere al textului de compresat
- // memorat de la adresa primului caracter din sir
- int lenght; // numarul de caractere distincte din text
- char C[37]; // vector cu lista caracterelor distincte din text
- int V[37]; // vector cu frecventele de aparitie ale caracterelor din text
- // vectorii C si V se completeaza pana la locatie "lenght"
- int read_data()
- {
- // din "input.dat" citim de pe prima linie textul de compresat
- }
- int compute_data()
- {
- // completam cu date vectorii C si V astfel incat
- /*
- anaaremere consuma 80 biti
- lenght=5
- C : a n r e m
- 1 2 3 4 5
- V : 3 1 2 3 1
- */
- }
- int print_compute()
- {
- }
- char heap[1000];
- int heap_maker()
- {
- }
- int main()
- {
- // ----------------
- read_data();
- compute_data();
- print_data();
- / *
- heap_maker();
- print_heap();
- initial :
- C : a n r e m
- 1 2 3 4 5
- V : 3 1 2 3 1
- after sorting
- C : a e r n m
- 1 2 3 4 5
- V : 3 3 2 1 1
- 1[a]
- / \
- 2[e] 3[r]
- / \
- 4 [n] 5[m]
- heap : a e r n m
- 1 2 3 4 5
- Codes :
- a -> 1 => 3
- e -> 1 1 => 6
- r -> 1 0 => 4
- n -> 1 1 1 => 3
- m -> 1 1 0 => 3
- total consum = 19 ( idealistic ) din 80 initial
- */
- // ----------------
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement