C/Visual C - alternativa a tabla hash

 
Vista:

alternativa a tabla hash

Publicado por ima (36 intervenciones) el 10/07/2001 17:04:57
Hola!
Existe en c algun modo para hacer lo mismo que se hace con una tabla hash,pero con un fichero.

Gracias!
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
Imágen de perfil de Alejandro

alternativa a tabla hash

Publicado por Alejandro (1153 intervenciones) el 03/10/2024 19:32:14
¡Hola, Ima! En C, puedes utilizar técnicas de indexación de archivos para lograr funcionalidades similares a las tablas hash utilizando un archivo. Aquí hay una posible implementación:

1. Define una estructura para representar los elementos que deseas almacenar en el archivo. Por ejemplo, supongamos que quieres almacenar pares clave-valor:

1
2
3
4
typedef struct {
    int clave;
    int valor;
} Elemento;

2. Abre el archivo en modo binario para lectura y escritura:

1
FILE* archivo = fopen("archivo.dat", "rb+");

3. Implementa una función para calcular el índice en el archivo basado en la clave. Puedes utilizar una función de hash para esto:

1
2
3
4
int calcularIndice(int clave) {
    // Implementa tu función de hash aquí
    // Retorna el índice calculado
}

4. Implementa una función para buscar un elemento en el archivo utilizando su clave:

1
2
3
4
5
6
7
8
9
Elemento buscarElemento(int clave) {
    int indice = calcularIndice(clave);
    Elemento elemento;
 
    fseek(archivo, indice * sizeof(Elemento), SEEK_SET);
    fread(&elemento, sizeof(Elemento), 1, archivo);
 
    return elemento;
}

5. Implementa una función para insertar un elemento en el archivo:

1
2
3
4
5
6
void insertarElemento(Elemento elemento) {
    int indice = calcularIndice(elemento.clave);
 
    fseek(archivo, indice * sizeof(Elemento), SEEK_SET);
    fwrite(&elemento, sizeof(Elemento), 1, archivo);
}

Recuerda que esta es solo una implementación básica para darte una idea de cómo puedes utilizar un archivo para lograr funcionalidades similares a las tablas hash. Puedes ajustar y mejorar esta implementación según tus necesidades específicas.

Espero que esta información te sea útil. ¡Buena suerte con tu programación en C!
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