Implementación
Inicio
Introducción
Definición
Función Hash
Colisión Hash
Implementación
Clase Tabla Hash
Downloads
Cool Links
Ayuda
Bibliografía
Comentarios
Créditos

 

 

 

 

 

                                               TABLA HASH

                                               1

                         n      

                                                     NODO HASH

 

 

 

 

:

 

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.

 

 

[Inicio] [Introducción] [Definición] [Función Hash] [Colisión Hash] [Implementación] [Clase Tabla Hash] [Downloads] [Cool Links] [Ayuda] [Bibliografía] [Comentarios] [Créditos]

 Made by Jorge Ochoa López  &  Julio Tinajero Valle,  PIRATESOFT® ©1999 ALL RIGHTS RESERVED . Agracedimientos especiales al Ing. Luis Palomino. 

                                                         ¡Escríbanos!    WebMaster:  [email protected]

   MEJOR VISTA CON                                                                        WebPadawan:   [email protected]