-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHuffmanArvore.h
34 lines (30 loc) · 1.24 KB
/
HuffmanArvore.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef ED2_HUFFMANARVORE_H
#define ED2_HUFFMANARVORE_H
#include "HuffmanHeap.h"
#include "HuffmanNo.h"
#define TAMANHO_MAXIMO 256
#define METADE_MAXIMO 128
class HuffmanArvore {
private:
bool** codigosHuffman;
int* tamanhosHuffman;
double tamanhoComprimido;
double tamanhoOriginal;
HuffmanNo *raiz;
HuffmanHeap *minHeap;
public:
HuffmanArvore(long tamanhoOriginal);
~HuffmanArvore();
double getTamanhoComprimido();
HuffmanHeap* criarEconstruirMinHeap(char *dados, long *frequencia, long tamanho, int *comparacoes);
HuffmanNo* construirHuffmanArvore(char *dados, long *frequencia, long tamanho, int *comparacoes);
void codificar(char *dados, long *frequencia, long tamanho, int *comparacoes);
void salvarCodigos(HuffmanNo* root, int arr[], int top);
void imprimirCodificado(HuffmanNo* root, int arr[], int top);
void salvarArray(int *arr, int n, bool* codigo);
void imprimirArray(int *arr, int n);
bool* comprimirHuffman(char *letras, long *frequencias, string reviews_texts);
void salvarTamanhos(char *letras, long *frequencias);
string descomprimirHuffman(bool *comprimido);
};
#endif //ED2_HUFFMANARVORE_H