|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuoc.ei.tads.TablaDispersion<C,E>
public class TablaDispersion<C,E>
Clase que implementa las operaciones de un diccionario mediante una tabla de dispersión indirecta, conocida con el número de tabla encadenada abierta (separate chaining). Seguramente es la manera más sencilla de resolver las colisiones. Por la función de dispersión se accede a el índice del vector y los sinónimos se encadenan a partir de esta posición. Los diccionarios son estructuras que almacenan elementos con una clave asociada. La clave debe disponer de una operación de igualdad y el elemento asociado a la clave puede ser cualquier objeto. En esta implementación se utilizan elementos de la clase ClaveValor que sobrescribe, por delegación en la clave, la función hashCode().
ClaveValor
,
Serialized FormNested Class Summary | |
---|---|
protected static class |
TablaDispersion.RecorridoNodos<C,E>
Clase que proporciona un recorrido de las posiciones. |
Field Summary | |
---|---|
protected int |
n
Número de elementos que hay actualmente al contenedor. |
protected ListaEncadenada<ClaveValor<C,E>>[] |
tabla
Vector de nodos encadenados. |
static int |
TAMANO_TABLA_POR_DEFECTO
Medida por defecto de la tabla de dispersión. |
Constructor Summary | |
---|---|
TablaDispersion()
Constructor sin parámetros (tamaño de la tabla por defecto). |
|
TablaDispersion(int tamano)
Constructor con un parámetro. |
Method Summary | |
---|---|
E |
borrar(C clave)
Borra la primera clave coincidente y el elemento asociado, si se puede. |
protected void |
borrarListaDeSinonimos(int indice)
|
protected Posicion<ClaveValor<C,E>> |
buscarClaveEnSinonimos(ListaEncadenada<ClaveValor<C,E>> sinonimos,
C clave)
|
protected int |
calcularIndiceTabla(C clave)
|
Iterador<C> |
claves()
Accesor de lectura de los elementos que hay en el contenedor. |
E |
consultar(C clave)
Accesor de lectura del elemento asociado con una clave. |
protected ListaEncadenada<ClaveValor<C,E>> |
creaListaDeSinonimos(int indice,
ClaveValor<C,E> kv)
|
Iterador<E> |
elementos()
Accesor de lectura de los elementos que hay en el contenedor. |
boolean |
esta(C clave)
Comprueba si hay un elemento con una determinada clave. |
boolean |
estaVacio()
Método para comprobar si el contenedor está vacío. |
void |
insertar(C clave,
E elem)
Añade un elemento con una clave asociada, si se puede. |
int |
numElems()
Accesor de lectura del número de elementos que hay en el contenedor. |
java.lang.String |
toString()
Método que sobrescribe Object.toString(). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int TAMANO_TABLA_POR_DEFECTO
protected int n
protected ListaEncadenada<ClaveValor<C,E>>[] tabla
Constructor Detail |
---|
public TablaDispersion()
public TablaDispersion(int tamano) throws ExcepcionParametroIncorrecto
tamano
- tamaño de la tabla de dispersión
ExcepcionParametroIncorrecto
- si la tamaño es negativaMethod Detail |
---|
public int numElems()
numElems
in interface Contenedor<E>
public boolean estaVacio()
estaVacio
in interface Contenedor<E>
public void insertar(C clave, E elem)
insertar
in interface Diccionario<C,E>
clave
- clave asociada al elemento que se quiere añadirelem
- elemento que se quiere añadir al diccionario
ExcepcionTADs
- si la clave es nullClaveValor
public boolean esta(C clave)
esta
in interface Diccionario<C,E>
clave
- clave asociada a un elemento
public E consultar(C clave)
consultar
in interface Diccionario<C,E>
clave
- clave de referencia
ExcepcionElementosNoComparables
- si el elemento es no
comparableClaveValor
public E borrar(C clave)
borrar
in interface Diccionario<C,E>
clave
- clave de referencia
ExcepcionContenedorVacio
- si la tabla está vacía
ExcepcionElementosNoComparables
- si el elemento es no
comparableClaveValor
protected int calcularIndiceTabla(C clave)
protected ListaEncadenada<ClaveValor<C,E>> creaListaDeSinonimos(int indice, ClaveValor<C,E> kv)
protected void borrarListaDeSinonimos(int indice)
protected Posicion<ClaveValor<C,E>> buscarClaveEnSinonimos(ListaEncadenada<ClaveValor<C,E>> sinonimos, C clave)
public Iterador<C> claves()
claves
in interface Diccionario<C,E>
Iterador.haySiguiente()
,
Iterador.siguiente()
public Iterador<E> elementos()
elementos
in interface Contenedor<E>
Iterador.haySiguiente()
,
Iterador.siguiente()
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |