diff --git a/arbol.hpp b/arbol.hpp new file mode 100644 index 0000000..1e2bef7 --- /dev/null +++ b/arbol.hpp @@ -0,0 +1,16 @@ +#pragma once +#include "fecha.hpp" +#include "nodo.hpp" +#include + + +class Arbol { + private: + Nodo* raiz; + public: + Arbol(); + ~Arbol(); + void insertar(); + void last(int N); + void date(Fecha f1, Fecha f2); +} diff --git a/diccionariocuacs.cpp b/diccionariocuacs.cpp index ba343aa..91c6ebf 100644 --- a/diccionariocuacs.cpp +++ b/diccionariocuacs.cpp @@ -5,7 +5,8 @@ DiccionarioCuacs::DiccionarioCuacs(int m) { this -> tabla = th; } void DiccionarioCuacs::insertar(Cuac nuevo) { - tabla.insertar(nuevo); + Cuac *ref = tabla.insertar(nuevo); + arbol.insertar(ref); } void DiccionarioCuacs::follow(string nombre){ diff --git a/diccionariocuacs.hpp b/diccionariocuacs.hpp index e6b07a2..513fa00 100644 --- a/diccionariocuacs.hpp +++ b/diccionariocuacs.hpp @@ -9,6 +9,7 @@ using namespace std; class DiccionarioCuacs { private: TablaHash tabla; + Arbol arbol; public: DiccionarioCuacs(int m); ~DiccionarioCuacs(); diff --git a/main.cpp b/main.cpp index 839a61b..d837f92 100644 --- a/main.cpp +++ b/main.cpp @@ -10,7 +10,7 @@ using namespace std; // el número de cubetas tiene que cumplir B = 4r + 3 para todo r en N // usamos 20003 porque queda cerca de 20000 // hay que redimensionar dinámicamente -DiccionarioCuacs dic = DiccionarioCuacs(5000); +DiccionarioCuacs dic = DiccionarioCuacs(1000); void procesar_pcuac() { Cuac nuevo; diff --git a/nodo.cpp b/nodo.cpp new file mode 100644 index 0000000..329ed7a --- /dev/null +++ b/nodo.cpp @@ -0,0 +1,22 @@ +#include "nodo.hpp" + +Nodo::Nodo(){ + sig = nullptr; + ptr = nullptr; +} +Nodo::~Nodo() { + delete sig; + delete ptr; +} + +Nodo* consulta(char letra); +void inserta(char l); +bool HayMarca(); +void PonerMarca(); +void PonerEnLista(Cuac *ref) { + +} +list getLista() { + return lista; +} + diff --git a/nodo.hpp b/nodo.hpp new file mode 100644 index 0000000..5b5b304 --- /dev/null +++ b/nodo.hpp @@ -0,0 +1,24 @@ +#pragma once +#include +#include "fecha.hpp" +#include "cuac.hpp" +#include +#define TAM 11 + +class Nodo { + private: + char car; + Nodo *sig, *ptr; + Fecha f; + list lista; + + public: + Nodo(); + ~Nodo(); + Nodo* consulta(char letra); + void inserta(char l); + bool HayMarca(); + void PonerMarca(); + void PonerEnLista(Cuac *ref); + list getLista(); +}; diff --git a/tablahash.cpp b/tablahash.cpp index 1188e39..470b6a7 100644 --- a/tablahash.cpp +++ b/tablahash.cpp @@ -40,12 +40,7 @@ void TablaHash::consultar(string clave) { } -// probamos suma posicional -// 19s -// probamos suma posicional por trozos -// ruina -// es disp. abierta, no necesita redispersión -// 19s a superar +// suma posicional unsigned int TablaHash::h(string clave) { unsigned int res = 0; for (int i = 0; i < (int) clave.length(); i++) {