Example #1
0
bool TablaHashAbierto<C,V,FHash>::Borrar(const C& c)
{
	assert(Pertenece(c));
	nat pos = H(c);
	if (arreglo[pos]->Borrar(c))
	{
		largo--;
		return true;
	}
	return false;
}
Example #2
0
 /**
  * Agrega un elemento al conjunto.
  * Implementa la función AGREGAR(in/out c: conjAcotado, in e : nat)
  * PRE: { c = c_0 ^ Infimo(c) <= e <= Supremo(c) }
  * POS: { c = Ag(e, c_0) }
  * Complejidad: O(1)
  */
 void ConjAcotado::Agregar(Nat e) {
     assert(EnRango(e));
     if (!Pertenece(e)) {
         pertenencia.Definir(Indice(e), elementos.AgregarRapido(e));
     }
 }
Example #3
0
 /**
  * Elimina a de c, si es que estaba.
  * Observar que no es requerido que e pertenezca al rango de c.
  * Implementa la función ELIMINAR(in/out c: conjAcotado, in e: nat)
  * PRE: { c = c_0 }
  * POS: { ConjSuby(c) = ConjSuby(c_0) \ {e} ^ Rango(c) = Rango(c_0) }
  * Complejidad: O(1)		
  */
 void ConjAcotado::Eliminar(Nat e) {
     if (EnRango(e) && Pertenece(e)) {
         pertenencia[Indice(e)].EliminarSiguiente();
         pertenencia.Borrar(Indice(e));
     }
 }
Example #4
0
const V& TablaHashAbierto<C,V,FHash>::Obtener(const C& c) const
{
	assert(Pertenece(c));
	nat pos = H(c);
	return arreglo[pos]->Obtener(c);
}
Example #5
0
void Conj<T>::Eliminar(const T& e){
    if(Pertenece(e)) d.Borrar(e);
}