C/Visual C - Tablas hash

 
Vista:

Tablas hash

Publicado por chinom (1 intervención) el 17/04/2007 12:39:31
Hola buenas, lo primero agradecer la ayuda que podáis prestarme.
Tengo que crear una tabla hash, donde lo que le paso en lugar de ser una cadena, va a ser una estructura de 13 enteros.
Bien os explico, lo que me van a pasar es un entero (Ej. 6561), a raiz de tener este entero, voy a ir descomponiendolo, primero 6 (Si este no existe, lo creo), después 65(donde uno de los campos sera la clave del padre, en este caso 6), aqui lo mismo que antes, sino esta lo creo. Uno de los campos de 6, será id_5(En este caso, ya que el numero es 6561) y contendra la clave donde se encuentra 65. Todos estos pasos sucesivamente hasta que creemos 6561.
Esto seria la funcion de insertar, la de consultar imagino que teniendo la clave del entero, puedo localizarlo y ver si existe o no.
La funcion de borrar seria asi: Ej.6561 compruebo si sus campos id(donde tenemos almacenados las claves de sus hijos) son NULL o tienen valor. De tenerlo vamos borrando todos los hijos hacia abajo(Un ejemplo de hijo seria 65617, cuya clave estaria almacenada en el id-7). Una vez borrado todo hacia abajo, tenemos que ir comprobando si sus padres tienen mas hijos(En este caso 656). De tenerlos borramos el registro de (6561), de no tenerlos borramos el padre tambien. Todo esto sucesivamente hasta que padre sea NULL o padre tenga mas de un hijo.

Espero haberme explicado correctamente. Por favor si me podeis echar una mano. Lo tengo que programar con C++ y la verdad es que no tengo mucha idea.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tablas hash

Publicado por Nelek (816 intervenciones) el 17/04/2007 15:28:40
La verdad es que el tema en el que pides ayuda me sobrepasa un pelin. Pero...

CITO:
Tengo que crear una tabla hash, donde lo que le paso en lugar de ser una cadena, va a ser una estructura de 13 enteros.
-----

Si normalmente se le pasan cadenas de caracteres... y tu en tu programa, trabajas con enteros para determinar el estado en el que estas o por lo que sea... pero trabajas con enteros...

En lugar de pasarle los enteros complicandote la vida... porque no haces una transformacion de ese numero entero a una cadena de caracteres antes de ejecutar / llamar al metodo que necesitas para trabajar con los Hash???

Perdona que no diga mucho mas y/o si lo que digo es una estupidez, pero a veces las soluciones mas simples son vistas por gente no tan especializada :P (lo cual no quiere decir que la mia sea la solucion a tu problema, pero podria darte otra idea)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar