Descripción de las estructuras de datos desarrolladas - Sormocs/Proyecto_III_Datos_II GitHub Wiki
Se utilizó para almacenar con las direcciones de memoria de cada DiskNodo de la memoria luego de haber sido leído desde los parámetros del .XML
class ListDiskNode {
private:
DiskNode* head;
int size = 1;
public:
ListDiskNode();
void Add(std::string path);
void DeleteNode(int i);
};
class DiskNode {
private:
std::string path;
ListPath *data = new ListPath();
DiskNode* back;
DiskNode* next;
public:
DiskNode(std::string path);
DiskNode* GetNext();
DiskNode* GetBack();
void SetBack(DiskNode* node);
void SetNext(DiskNode* node);
ListPath* GetData();
void FillPath();
};
Se utilizó para almacenar la dirección de cada archivo .txt desde de los disk nodos, para el uso de escritura y lectura de los datos.
class ListPath {
private:
NodePath* head;
int size;
public:
ListPath();
void AddFinal(std::string name, std::string path);
};
class NodePath {
private:
std::string name;
std::string path;
NodePath* next;
public:
NodePath(std::string name, std::string path);
NodePath* GetNext();
void SetNext(NodePath* node);
};
Se utilizó para el almacenamiento de los chars y los bitset<8> a la hora de la conversión de string a bytes y viceversa.
Se forma un heap según las frecuencias de los caractéres del string que el algoritmo debe comprimir, sus nodos son structs que pueden contener ya sea la información de un caractér o más nodos según su posición en el árbol.
Ambas contienen structs para los caracteres, con la diferencia de que StrChar guarda su frecuencia, mientras que la otra guarda el código que se debe seguir para encontrarlo en el árbol ya formado. Se comportan de igual manera con solo un insert al final y guardan su propio tamaño.