Conjuntos

Páginas: 11 (2535 palabras) Publicado: 6 de octubre de 2014
Estructuras de Datos y Algoritmos

Tema 4
Conjuntos

Objetivos






Estudiar nuevos TADs que modelan conjuntos
dinámicos de elementos: diccionarios, colas de
prioridad, conjuntos disjuntos
Analizar distintas representaciones y algoritmos
asociados para dichos TADs.
Analizar qué TAD y qué representación es más
adecuada para resolver un problema dado.

Contenido1.Introducción
2.Conjuntos dinámicos: diccionario, cola de prioridad y
conjuntos disjuntos
3.Listas enlazadas
4.Árbol binario de búsqueda
5.Tabla Hash
6.Montículo (heaps)
7.MF-Set
8.Tries
9.Árboles balanceados: Árboles AVL, Árboles 2-3, BÁrboles, B-Árboles +

Bibliografía


“Introduction to Algorithms”. Cormen, Leiserson y Rivest.



“Fundamentos de Algoritmia”. Brassard y Bratley.●

“Computer algorithms”. Horowitz, Sahni y Rajasekaran.



“Estructuras de datos y Algoritmos”, Aho, Hopcroft y Ullman



[Weiss95] “Estructuras de datos y algoritmos” , Weiss, Mark
Allen. Ed. Addison-Wesley, U.S.A., 1995,

Introducción







En ocasiones necesitamos almacenar
colecciones de elementos.
Un conjunto no posee elementos repetidos.
Podemos efectuar lasoperaciones típicas de:
pertenencia, igualdad o inclusión, unión,
intersección, diferencia, etc.
En ocasiones nos interesa manipular la colección
de elementos: conjuntos dinámicos.

Conjuntos dinámicos




Conjuntos en los que sus elementos pueden
variar a lo largo del tiempo.
Los elementos se representan por:





Una clave: valor que identifica al elemento
Informaciónsatélite: información asociada al
elemento

Puede existir una relación de orden total entre
las claves (ej.: enteros, reales, cadenas)


Entonces es posible definir mínimo, máximo,
predecesor, sucesor.

Conjuntos dinámicos
Operaciones sobre conjunto dinámico C


Consultoras


C.vacío(): indica si el conjunto es vacío o no



C.buscar(k): devuelve el elemento x con clave k●

C.mínimo(): devuelve el elemento x con clave mínima



C.máximo(): devuelve el elemento x con clave máxima





C.predecesor(x): devuelve el elemento de clave
inmediatamente inferior a la de x
C.sucesor(x): devuelve el elemento de clave inmediatamente
superior a la de x

Conjuntos dinámicos
Operaciones sobre conjunto dinámico C


Modificadoras


C.insertar(x): añadeel elemento x



C.eliminar(x): elimina el elemento x



C.eliminarMin(): elimina el elemento con clave mínima



C.eliminarMax(): elimina el elemento con clave máxima

Conjuntos dinámicos
Algunos TADs que modelan conjuntos dinámicos


Diccionarios



Colas de prioridad



Conjuntos disjuntos

Conjuntos dinámicos
Diccionario


Todos sus elementos poseen unaclave y un valor.



Operaciones soportadas:





Consultoras: C.buscar(k)
Modificadoras: C.insertar(x), C.eliminar(x)

Ejemplos: traductores, tabla de símbolos de un
compilador, arrays asociativos, etc.

Conjuntos dinámicos
Diccionario


Interfaz Diccionario
public interface Diccionario {
void insertar(C clave, V valor);
V buscar(C clave);
void eliminar(C clave);
} Conjuntos dinámicos
Cola de prioridad




Sus elementos poseen una prioridad, que determina el
orden de acceso.
Operaciones soportadas:





Consultoras: C.máximo() (ó C.mínimo())
Modificadoras: C.insertar(x), C.eliminarMax() (ó
C.eliminarMin())

Ejemplos: colas de procesos en un sistema multitarea,
simulación de eventos, protocolos de comunicación con
prioridad, etc. Conjuntos dinámicos
Cola de prioridad


Interfaz ColaPrioridad
public interface ColaPrioridad {
public void insertar(E x);
public E maximo();
public E eliminarMax();
}

Conjuntos dinámicos
Conjuntos disjuntos


Sus elementos se agrupan en conjuntos disjuntos.



Típicamente modelan el particionado de otro conjunto.



Operaciones soportadas:



●...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • conjuntos
  • conjuntos
  • Conjuntos
  • conjuntos
  • Conjuntos
  • CONJUNTOS
  • CONJUNTOS
  • conjuntos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS