Implementación De Un Diccionario Con Una Tabla Hash En C#

En este ejercicio, creará un diccionario utilizando una tabla hash en C#. El objetivo de esta tarea es practicar la implementación de una tabla hash, una estructura de datos altamente eficiente que se utiliza para almacenar pares clave-valor. Una tabla hash permite búsquedas, inserciones y eliminaciones rápidas basadas en claves.

En este ejercicio, deberá implementar un diccionario que almacene palabras como claves y sus correspondientes definiciones como valores. El usuario podrá insertar palabras y definiciones en la tabla hash y buscar las definiciones de las palabras proporcionando la clave (la palabra misma).

Esta tarea le ayudará a comprender la implementación básica de una tabla hash en C#, incluyendo cómo gestionar colisiones. Estas estructuras de datos se utilizan ampliamente en aplicaciones que requieren un acceso rápido a los datos, como motores de búsqueda o sistemas de almacenamiento de información a gran escala.



Grupo

Gestión Dinámica de Memoria en C#

Objectivo

1. Crear una tabla hash que almacene palabras (como claves) y sus definiciones (como valores).
2. Implementar la posibilidad de insertar palabras y definiciones en la tabla hash.
3. Permitir al usuario buscar una definición introduciendo una palabra.
4. Gestionar posibles colisiones mediante una estrategia adecuada de resolución de colisiones.
5. Mostrar el resultado de la búsqueda o un mensaje si no se encuentra la palabra.
6. Proporcionar una interfaz de texto sencilla que permita al usuario interactuar con la tabla hash.

En este ejercicio, se debe crear un diccionario utilizando una tabla hash. El objetivo de este ejercicio es practicar la implementación de una estructura de datos eficiente para almacenar pares clave-valor.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.Collections;

class HashTableDictionary
{
    static void Main()
    {
        Hashtable dictionary = new Hashtable(); // Create a new hashtable to store words and definitions

        // Insert some initial word-definition pairs
        dictionary.Add("C#", "A modern programming language developed by Microsoft.");
        dictionary.Add("HashTable", "A data structure that stores key-value pairs for fast lookups.");
        dictionary.Add("Dictionary", "A collection of words and their definitions.");

        Console.WriteLine("Welcome to the Dictionary HashTable!");
        Console.WriteLine("Enter 'exit' to quit the program.");
        string input;

        // Loop to interact with the user
        do
        {
            Console.WriteLine("Enter a word to search for its definition:");
            input = Console.ReadLine(); // Read the user's input

            if (input.ToLower() == "exit") // Check if the user wants to exit
                break;

            // Search for the word in the dictionary
            if (dictionary.ContainsKey(input))
            {
                Console.WriteLine("Definition: " + dictionary[input]); // Print the definition if found
            }
            else
            {
                Console.WriteLine("Sorry, the word was not found in the dictionary.");
            }

        } while (true); // Continue until the user exits
    }
}

 Output

Welcome to the Dictionary HashTable!
Enter 'exit' to quit the program.
Enter a word to search for its definition:
C#
Definition: A modern programming language developed by Microsoft.
Enter a word to search for its definition:
HashTable
Definition: A data structure that stores key-value pairs for fast lookups.
Enter a word to search for its definition:
Dictionary
Definition: A collection of words and their definitions.
Enter a word to search for its definition:
Python
Sorry, the word was not found in the dictionary.
Enter a word to search for its definition:
exit

Comparte este ejercicio de C#

Practica más ejercicios C# de Gestión Dinámica de Memoria en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..