I) OBJETIVOS
II) MARCO CONCEPTUAL Hashing o localización Es una forma de Implementación de tablas hash que dispone de técnicas para realizar inserciones, eliminaciones y búsquedas con coste medio constante. Funcion hash o de localización Función que asocia a un elemento y un índice. Colisión El empleo de la función de localización introduce una complicación, es posible que a dos elementos distintos les corresponda la misma posición. Métodos para resolver la colisión
III) PRACTICAS 1) Implementación básica de una tabla hash, con un función hash para números enteros de 16 bits. namespace AppDispersion
{
public class TablaHash
{ // Arreglo o vector de elementos enteros
private int[] tabla;
public TablaHash(int n)
{
tabla = new int[n]; // inicializar la tabla for (int i=0;i<tabla.Length;i++) { tabla[i]=0; }
} /* Insertar un elemento al arreglo*/
public void insertar(int elemento)
{ // Determinar el indice del elemento utilizando la función hash
int indice = hash(elemento); // Asignar elemento a la posición del indice // no se controla colisiones - se sobre escriben los elementos. tabla[indice] = elemento
}
/* Implementación de una función hash para enteros de 16 bits */
private int hash(int clave)
{
return clave % tabla.Length;
} /* Implementación de una función hash para enteros de 16 bits */
public void MostrarTabla()
{
for (int i = 0; i < tabla.Length; i++)
{
Console.Write("Indice: {0} ",i);
Console.Write("\t");
Console.Write("Elemento: {0} ", tabla[i]);
Console.Write("\n");
}
}
public bool busqueda(int clave)
{
return tabla[hash(clave)]!=0;
}
}
}
Programa principal: namespace AppDispersion { class Program { static void Main(string[] args) { TablaHash tablaHash = new TablaHash(11); tablaHash.insertar(8); tablaHash.insertar(7); tablaHash.insertar(27); tablaHash.insertar(16); tablaHash.insertar(17); // mostrar la tabla Hash tablaHash.MostrarTabla(); Console.ReadKey(); } } } IV) TAREAS
V) Proyecto
VI) REFERENCIAS
|