|

1
 : Atributos del TDA-NodoHash:
Formalismo:
Invariante: En un
nodo de la tabla Hash se guarda la llave, la cual relacionará un determinado tipo de información. La función Hash indicará en que posición o nodo se introducirá cada llave.
Identificación de Estado: *String key; llave de acceso, cada llave de acceso debe ser única.
*Info; información extra, de cualquier tipo que se indique.
Especificación de operaciones del TDA-NodoHash:Aquí se describe la funcionalidad de un NodoHash. Considerando las operaciones
constructoras, modificadoras y analizadoras: void setKey(String key) void setInfo(int info) info getInfo()
void show() Implementación del TDA-NodoHash:
public class NodoHash{
int key;//Llave. String nombre;//Información extra. NodoHash nextNode;
public NodoHash() {
key =0; nombre=null; }
public NodoHash(NodoHash x){
key = x.key; nombre = x.nombre; }
public NodoHash(int key, String str){
this.key = key; nombre = str; }
public void insertarNodo(int key, String nombre) {
insertarNodo(key, nombre, this);
} public void insertarNodo(int key, String nombre, NodoHash actual){
if(actual.getNextNode() == null)
actual.setNextNode(new NodoHash(key, nombre)); else insertarNodo(key, nombre, actual);
}
public NodoHash getNodo(int key) { return getNodo(key, this); }
public NodoHash getNodo(int key, NodoHash actual) {
if (key == actual.getKey()) return actual;
else if (actual.getNextNode()== null) return null;
else return getNodo(key, actual.getNextNode()); }
public int getKey() { return key; }
public String getNombre(){ return nombre; }
public NodoHash getNextNode() { return nextNode; }
public void setNextNode(NodoHash nextNode) { this.nextNode = nextNode; }
public String toString() { return "Llave " + key + " Nombre " + nombre; } }
Atributos del TDA-TablaHash:Formalismo:
Invariante: Las tablas Hash estan formadas por arreglos. Un arreglo de Tabla Hash cuenta con "m" NodosHash. El número de elementos n de información serán aplicados por medio de sus llaves dentro de la Tabla.
Dentro de una búsqueda, si no hay nada en cierta posición de la tabla hash se regresara null, en caso contrario se regresará el valor entero. Identificación de Estado:
*int m; tamaño de la tabla Hash.
*int n; número de elementos a ingresar.
*double loadFactor; determina que tan llena esta la tabla Hash. En las tablas se debe cumplir m>n, es decir, el tamaño de la tabla Hash debe de ser mayor al número de elementos a ingresar.
Especificación de Operaciones:
public TablaHash(); creación de Tabla Hash.
public TablaHash(TablaHash t); creación Tabla Hash que recibe otra tabla
public int HashFuncion( int k); realiza la función Hash a un String
public void insertarHashElement(NodoHash n); Inserta un elemento en la tabla hash
public void borrarTodos(); borra todos los elementos de la tabla hash.
public void borrarElementoHash(NodoHash n); borra un elemento de la tabla.
public void BuscarElemento(NodoHash n); busca un elemento en la tabla hash. |