Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Implementación De Una Tabla Hash

Iniciado por CoLSoN2, 12 de Diciembre de 2004, 01:18:29 AM

« anterior - próximo »

CoLSoN2

 ¿Alguien sabe de un enlace con algún algoritmo o código fuente de cómo implementar una tabla hash, estilo std::map, donde la clave siempre sea un string?
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

tywok_

 Hola!
Para hacer un hash, puedes hacer un sumatorio de los valores del string con factores primos... a ver, si quieres hacer un hash de dos numeros, por ejemplo puedes hacer 701*a+b. esto lo podrias pasar al string sin muxos problemas. Seguro q en internet hay algoritmos mas avanzados, pero este funciona bastante bien!


Pogacha

 Haber si de memoria me sale:

template < int n_Nodos=32000 > class CHash
{
 CMyStringList Nodo[n_Nodos]; // la de microsoft esta bien sino cualquiera
                                                 // yo en particular tengo una que tambien permite busqueda binaria

 int Codigo(const char *s)
{
  static int Desplazamientos[8] = { 0, 5, 10, 1, 6, 11, 2, 7 };
  char *c;  
  int v=0,j=0;
  c=s;
  while(*c) {  v^= int(*c-'a')  << Desplazamiento[j++];  c++}
  return v%n_Nodos;  
}
 public:
 void Vaciar(void)
 {
    for(int i=0; i<n_Nodos; i++) Nodos[i].Vaciar();
 }
 void Agregar(const char *s)
 {
    Nodo[Codigo(s)].Agregar(s);
  }

 void Quitar(const char *s)
 {
    Nodo[Codigo(s)].Delete(s);
  }

  const char *Encontrar(const char *s)
  {
       return Nodo[Codigo(s)].Buscar(s);
  }
};


De esta forma consigo un spread del 25%, en el lenguaje ingles al menos.
Saludos.

PD: CoLSoN2 ..., vos trabajas en RAC?

Edit: Le hice tres correcciones, (al parecer no me salio de primera)

CoLSoN2

Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Pogacha

 RAC
Pedian desesperadamente un juego con tabla hash de strings.
Saludos.

CoLSoN2

 pues nop, no sabía ni que existía xD
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.