programacion en c++
Publicado por nancy v. (1 intervención) el 02/06/2005 18:47:36
Necesito un programa en c++ que contenga almacenamiento de hashing
Valora esta pregunta


0



#include <iostream>#include <vector>#include <list>// Estructura para representar un par clave-valorstruct KeyValuePair {int key;
std::string value;
};// Implementación de una tabla hash con encadenamiento para almacenar pares clave-valorclass HashMap {private:static const int TABLE_SIZE = 10; // Tamaño de la tabla hash
std::vector<std::list<KeyValuePair>> table; // Vector de listas para encadenamiento
public:HashMap() : table(TABLE_SIZE) {}
// Función de hash simpleint hashFunction(int key) {
return key % TABLE_SIZE; } // Insertar un par clave-valor en la tabla hashvoid insert(int key, const std::string& value) {
int index = hashFunction(key);
table[index].emplace_back(KeyValuePair{key, value});
} // Buscar un valor dado una clave en la tabla hashstd::string search(int key) {
int index = hashFunction(key);
for (const auto& pair : table[index]) {
if (pair.key == key) {
return pair.value; } } return "Clave no encontrada"; } // Mostrar la tabla hashvoid display() {
for (int i = 0; i < TABLE_SIZE; ++i) {
std::cout << "[" << i << "]: ";
for (const auto& pair : table) {
std::cout << "{" << pair.key << ", " << pair.value << "} ";
}std::cout << std::endl;
} }};int main() {
HashMap hashTable;
// Insertar pares clave-valorhashTable.insert(1, "Valor1");
hashTable.insert(11, "Valor2");
hashTable.insert(21, "Valor3");
hashTable.insert(2, "Valor4");
// Mostrar la tabla hashstd::cout << "Tabla hash:\n";
hashTable.display();
// Buscar valores por clavestd::cout << "\nBuscar valor para clave 11: " << hashTable.search(11) << std::endl;
std::cout << "Buscar valor para clave 3: " << hashTable.search(3) << std::endl;
return 0;
}
