uoc.ei.tads
Class ConjuntoAVLImpl<E>

java.lang.Object
  extended by uoc.ei.tads.ConjuntoAbstracto<E>
      extended by uoc.ei.tads.ConjuntoAVLImpl<E>
All Implemented Interfaces:
java.io.Serializable, Conjunto<E>, Contenedor<E>

public class ConjuntoAVLImpl<E>
extends ConjuntoAbstracto<E>

Clase que implementa las operaciones de un conjunto por delegación en un arbol binario AVL. Los conjuntos son estructuras que almacenan elementos no repetidos. La clase de los objetos debe disponer de una operación de igualdad. En esta implementación se espera que la clase de los elementos implemente la interfaz java.lang.Comparable o bien que se facilite un java.util.Comparator como parámetro del constructor.

See Also:
Serialized Form

Field Summary
protected  ArbolAVL<E> avl
          Arbol binario AVL que implementa las operaciones por delegación.
 
Constructor Summary
ConjuntoAVLImpl()
          Constructor sin parámetros.
ConjuntoAVLImpl(java.util.Comparator<E> comparador)
          Constructor con un parámetro y elementos de una clase comparable con el comparador dado.
 
Method Summary
 E borrar(E elem)
          Borra un elemento, si se puede.
 Iterador<E> elementos()
          Accesor de lectura de los elementos que hay en el contenedor.
 boolean esta(E elem)
          Comprueba si hay un elemento.
 boolean estaVacio()
          Método para comprobar si el contenedor está vacío.
 void insertar(E elem)
          Añade un elemento, si se puede.
 int numElems()
          Accesor de lectura del número de elementos que hay al contenedor.
 java.lang.String toString()
          Método que sobrescribe Object.toString().
 
Methods inherited from class uoc.ei.tads.ConjuntoAbstracto
diferencia, interseccion, union
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

avl

protected ArbolAVL<E> avl
Arbol binario AVL que implementa las operaciones por delegación.

Constructor Detail

ConjuntoAVLImpl

public ConjuntoAVLImpl()
Constructor sin parámetros. Se espera que las clases de los elementos implementen la interfaz java.lang.Comparable.


ConjuntoAVLImpl

public ConjuntoAVLImpl(java.util.Comparator<E> comparador)
Constructor con un parámetro y elementos de una clase comparable con el comparador dado.

Parameters:
comparador - comparador que permite deducir la prioridad
Method Detail

numElems

public int numElems()
Accesor de lectura del número de elementos que hay al contenedor.

Returns:
número de elementos que contiene actualmente

estaVacio

public boolean estaVacio()
Método para comprobar si el contenedor está vacío.

Returns:
cierto o falso, según si está vacío o no lo está

insertar

public void insertar(E elem)
Añade un elemento, si se puede.

Parameters:
elem - elemento que se quiere añadir al conjunto

esta

public boolean esta(E elem)
Comprueba si hay un elemento.

Parameters:
elem - elemento de referencia
Returns:
cierto o falso, según si encuentra o no encuentra el elemento

borrar

public E borrar(E elem)
Borra un elemento, si se puede.

Parameters:
elem - elemento de referencia
Returns:
elemento borrado; o null, si no existía

elementos

public Iterador<E> elementos()
Accesor de lectura de los elementos que hay en el contenedor. Retorna una enumeración. Enumerar es simplemente enunciar la una detrás la otra (las cosas de una serie, las partes de un todo). Pero si el contenedor tiene definido algún tipo de ordenación o de recorrido, la enumeración debe ser consecuente y ofrecer los elementos por orden (FIFO, LIFO, inordre, etc.), sin alterar el estado actual del contenedor.

Returns:
enumeración de los elementos asociados con las claves.
Throws:
ExcepcionPosicionInvalida - si se quiere obtener el siguiente elemento de la enumeración y no existe tal elemento.
See Also:
Iterador.haySiguiente(), Iterador.siguiente()

toString

public java.lang.String toString()
Método que sobrescribe Object.toString(). Saca los elementos separados por el salto de línea de la plataforma.

Overrides:
toString in class java.lang.Object