trie
This commit is contained in:
16
arbol.hpp
Normal file
16
arbol.hpp
Normal 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);
|
||||||
|
}
|
||||||
@@ -5,7 +5,8 @@ DiccionarioCuacs::DiccionarioCuacs(int m) {
|
|||||||
this -> tabla = th;
|
this -> tabla = th;
|
||||||
}
|
}
|
||||||
void DiccionarioCuacs::insertar(Cuac nuevo) {
|
void DiccionarioCuacs::insertar(Cuac nuevo) {
|
||||||
tabla.insertar(nuevo);
|
Cuac *ref = tabla.insertar(nuevo);
|
||||||
|
arbol.insertar(ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiccionarioCuacs::follow(string nombre){
|
void DiccionarioCuacs::follow(string nombre){
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using namespace std;
|
|||||||
class DiccionarioCuacs {
|
class DiccionarioCuacs {
|
||||||
private:
|
private:
|
||||||
TablaHash tabla;
|
TablaHash tabla;
|
||||||
|
Arbol arbol;
|
||||||
public:
|
public:
|
||||||
DiccionarioCuacs(int m);
|
DiccionarioCuacs(int m);
|
||||||
~DiccionarioCuacs();
|
~DiccionarioCuacs();
|
||||||
|
|||||||
2
main.cpp
2
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
|
// el número de cubetas tiene que cumplir B = 4r + 3 para todo r en N
|
||||||
// usamos 20003 porque queda cerca de 20000
|
// usamos 20003 porque queda cerca de 20000
|
||||||
// hay que redimensionar dinámicamente
|
// hay que redimensionar dinámicamente
|
||||||
DiccionarioCuacs dic = DiccionarioCuacs(5000);
|
DiccionarioCuacs dic = DiccionarioCuacs(1000);
|
||||||
|
|
||||||
void procesar_pcuac() {
|
void procesar_pcuac() {
|
||||||
Cuac nuevo;
|
Cuac nuevo;
|
||||||
|
|||||||
22
nodo.cpp
Normal file
22
nodo.cpp
Normal 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
24
nodo.hpp
Normal 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();
|
||||||
|
};
|
||||||
@@ -40,12 +40,7 @@ void TablaHash::consultar(string clave) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// probamos suma posicional
|
// suma posicional
|
||||||
// 19s
|
|
||||||
// probamos suma posicional por trozos
|
|
||||||
// ruina
|
|
||||||
// es disp. abierta, no necesita redispersión
|
|
||||||
// 19s a superar
|
|
||||||
unsigned int TablaHash::h(string clave) {
|
unsigned int TablaHash::h(string clave) {
|
||||||
unsigned int res = 0;
|
unsigned int res = 0;
|
||||||
for (int i = 0; i < (int) clave.length(); i++) {
|
for (int i = 0; i < (int) clave.length(); i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user