Documentos de Académico
Documentos de Profesional
Documentos de Cultura
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Estructura de Datos
Clase 18: Conjuntos
Carlos Contreras Bolton
Universidad Andr
es Bello
Facultad de Ingeniera
3 de Junio de 2014
1/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Contenido
1 Introducci
on
2 Operaciones m
as comunes
3 Tipos de Implementaciones de Conjuntos
Arreglos de bits
Arreglos
Listas
2/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Introduccion
Los conjuntos son una de las estructuras basicas de las
matematicas, y por tanto de la ciencias de la
computacion.
Conjunto esta formado por una coleccion de elementos
junto con sus operaciones, tal que:
Los elementos pueden ser datos simples o compuestos.
En general suelen ser todos los elementos del mismo
tipo.
Pueden existir elementos repetidos.
Podra existir alguna relaci
on de orden (lo que no
implica que los elementos se encuentren ordenados).
3/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Introduccion
Universo de valores o conjunto universal: es el
conjunto de todos los posibles valores que puede haber en
un conjunto.
Cardinal de un conjunto: numero de elementos que
contiene.
Conjunto vaco ({}): conjunto con cardinal cero ().
4/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
5/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
6/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
7/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
8/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
9/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Implementacion
Arreglos de bits
8 7
1 1
Carlos Contreras Bolton Estructura de Datos
6 5 4 3 2 1
0 0 1 0 0 1
0
0
10/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Implementacion
Arreglos de bits
11/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Implementacion
Arreglos de bits
Ejemplos (bit mas significativo a la izquierda):
11111111 A = {0, 1, 2, 3, 4, 5, 6, 7}
11110001 A = {0, 4, 5, 6, 7}
01010101 A = {0, 2, 4, 6}
00000000 A =
La raz
on para emplear los arreglo de bits es que las operaciones
sobre los conjuntos se realizan de manera muy rapida y sencilla.
Al menos con los computadores actuales, que tienen un tama
no de
palabra m
ultiplo de 8.
Por supuesto, la ocupaci
on en memoria esta optimizada al maximo.
El inconveniente es que el rango de representaci
on es muy limitado.
Por eso su aplicaci
on es muy restringida, y depende fuertemente del
compilador y el computador sobre el que se implementan, pero es
increblemente rapida.
Carlos Contreras Bolton Estructura de Datos
12/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
11100110
10011100
11111110
11100110
10011100
10000100
13/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
11100110
10011100
01100011
11100110
01100011
01100010
14/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
1
0
0
1
1
0
1
0
0
1
1
0
C = (A B) = {1, 5, 6}
D = (B A) = {3, 4}
C D
= {1, 3, 4, 5, 6}
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
01000110
00011000
01011110
Nota: XOR en C es .
Carlos Contreras Bolton Estructura de Datos
15/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
16/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
17/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
18/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
19/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
0 1
1 4
Carlos Contreras Bolton Estructura de Datos
2 3 4 5 6 7
7 8 0 0 0 0
8
0
20/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
21/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
22/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
23/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
24/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
25/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
26/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
27/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
28/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
29/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Ventajas:
Inconvenientes:
30/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
p = A inicio
while p dato 6= x y p 6= NULL do
p = p sig
end while
retornar p
Algorithm 5 Interseccion(A, B)
1:
2:
3:
4:
5:
6:
7:
8:
9:
C =
p = A inicio
while p 6= NULL do
if Pertenece(p dato, A) then
Insertar(C , p dato)
p = p sig
end if
end while
retornar C
31/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
32/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Si ordenamos:
33/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Algorithm 6 Pertenece(x, A)
1:
2:
3:
4:
5:
p = A inicio
while p dato 6= x y p 6= NULL do
p = p sig
end while
retornar p
34/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
35/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
36/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
37/38
Introducci
on Operaciones m
as comunes Tipos de Implementaciones de Conjuntos
Conclusiones Finales
38/38