-
Notifications
You must be signed in to change notification settings - Fork 0
/
htree.h
67 lines (55 loc) · 2.75 KB
/
htree.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef HTREE_H
#define HTREE_H
#include <QString>
#include <QByteArray>
#include <QDebug>
#include <QList>
#include <algorithm>
#include <cmath>
#include "stdlib.h"
#include "conio.h"
#include "node.h"
#include "functions.h"
class HTree
{
private:
Node *m_root; // Raíz da árvore
Node *m_cursor; // Cursor que navega pela árvore
QString* m_listCodes; // Array que contem os códigos dos bytes
QByteArray m_treeCode; // Variável que contém a árvore codificada
QByteArray m_fileCode; // Variável que contém o arquivo codificado
QByteArray m_sizeTrash; // Variável que contém o tamanho do lixo da árvore
QByteArray m_sizeTree; // Variável que contém o tamanho da árvore
QByteArray m_fileOut; // Variável que contém o arquivo comprimido
public:
void toString(Node *node, QString &str); // Função para imprimir a árvore
void toHuffman(Node *node); // Função para setar a codificação da árvore e a lista dos códigos dos bytes
HTree();
HTree(Node *cell);
HTree(QByteArray treeCode);
void setRoot(Node* root); // Seta a raíz da árvore
Node* getTree(); // Retorna o a raiz da árvore
void toLeft(); // Faz o cursor se deslocar para o nó da esquerda
void toRight(); // Faz o cursor se deslocar para o nó da direita
QString toString(); // Retorna a árvore impressa
void toHuffman(); // Seta a codificação da árvore e seta o nosso listCodes
QByteArray getTreeCode(); // Retorna a codificação da árvore
void encodingFile(QByteArray copyFiles); // Codifica o arquivo
QByteArray getFileCode(); // Retorna a codificação do arquivo
QByteArray trashCode(); // Retorna o lixo da codificação do arquivo e incrementa o codigo do arquivo
QByteArray sizeTree(); // Retorna o tamanho da árvore
QByteArray sizeName(QString nameFile); // Retorna o tamanho do nome do arquivo
QByteArray finalCode(QByteArray sizeName, QString fileName); // Retorna o código final do arquivo
void showListCode(); // Imprime o código de cada caracter
// Métodos e atributos da Descompressão
QByteArray my_fileCode; // Variável que contém o código do arquivo para ser descomprimido
QString my_fileName; // Variável que contém o nome do arquivo para ser descomprimido
QByteArray my_treeCode; // Variável que contém a codifiação da arvore do arquivo para ser descomprimido
QByteArray my_finalOutPut; // Variável que contém a codifiação final do arquivo para ser descomprimido
int s_Trash;
int s_Tree;
int s_Name;
bool getBit(long long int pos); // Retorna o bit na posição indicada
void getSizeThings(QByteArray code); // Obtém todos os dados do arquivo e o remonta
};
#endif // HTREE_H