Está en la página 1de 2

Tabla Hash Resolucion de Colisiones C++

En esta ocasin voy a publicar un programa en C++ con el tema de Tabla de Hash resolviendo las colisiones
de datos, el cdigo ha sigo probado en VisualStudio y Codeblocks o cualquier compilador G++, si tienes
alguna duda no dudes en postearlo, un saludo.
#include <iostream>
#include <string>
using namespace std;
struct DatosPersonales
{
int Edad;
char * Nombre;
};
//Devuelve el valor numrico de hash en base al tamao de la tabla de hash
int ValorTabla(char *textoHash, int tamanioTabla)
{
int valorHash=1;
for (int j = 1; j < sizeof(textoHash); j++)
{
valorHash += (int) textoHash[j];
}
return(valorHash % tamanioTabla);
}
int main()
{
int tamanioTablaHs=1000; //tamao de la tabla de Hash
//TABLA DE HASH
DatosPersonales * tablaHashEj = new DatosPersonales[tamanioTablaHs];
DatosPersonales DatosPersonalesOperacion;
int HashValorPos=1;
char Nombre[20];
int Edad;
cout << =======DATOS PERSONALES=========;
for(int i=1; i<=5; i++)
{
cout << \nNombre: ;
cin >> Nombre;
DatosPersonalesOperacion.Nombre = Nombre;
cout << Edad: ;
cin >> Edad;
DatosPersonalesOperacion.Edad = Edad;
HashValorPos += ValorTabla(DatosPersonalesOperacion.Nombre, tamanioTablaHs);
tablaHashEj[HashValorPos+i] = DatosPersonalesOperacion;
cout << Guardado en la posicion En: << HashValorPos << \n;
}
cin.get();cin.get();
return 0;
}

También podría gustarte