This commit is contained in:
2025-11-11 13:35:13 +01:00
parent e5666aa2e9
commit 1c1e22b1df
7 changed files with 67 additions and 8 deletions

16
arbol.hpp Normal file
View File

@@ -0,0 +1,16 @@
#pragma once
#include "fecha.hpp"
#include "nodo.hpp"
#include <iostream>
class Arbol {
private:
Nodo* raiz;
public:
Arbol();
~Arbol();
void insertar();
void last(int N);
void date(Fecha f1, Fecha f2);
}

View File

@@ -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){

View File

@@ -9,6 +9,7 @@ using namespace std;
class DiccionarioCuacs {
private:
TablaHash tabla;
Arbol arbol;
public:
DiccionarioCuacs(int m);
~DiccionarioCuacs();

View File

@@ -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;

22
nodo.cpp Normal file
View File

@@ -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<Cuac*> getLista() {
return lista;
}

24
nodo.hpp Normal file
View File

@@ -0,0 +1,24 @@
#pragma once
#include <iostream>
#include "fecha.hpp"
#include "cuac.hpp"
#include <list>
#define TAM 11
class Nodo {
private:
char car;
Nodo *sig, *ptr;
Fecha f;
list<Cuac*> lista;
public:
Nodo();
~Nodo();
Nodo* consulta(char letra);
void inserta(char l);
bool HayMarca();
void PonerMarca();
void PonerEnLista(Cuac *ref);
list<Cuac*> getLista();
};

View File

@@ -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++) {