Beruflich Dokumente
Kultur Dokumente
Recuperacin de
Informacin
Elementos 82 23 43 77 45 76 47 97 24
ndices 0 1 2 3 4 5 6 7 8
Lista Enlazada (Linked List)
Serie de objetos (nodos) conectados entre s
secuencialmente por referencias o punteros.
Cada nodo se compone de un elemento y una referencia
al nodo siguiente.
Costo constante para leer, insertar o eliminar el primer
elemento de la lista.
Acceder un elemento ubicado en la posicin i tiene un
costo proporcional a i.
lista
82 23 43 77 45 null
Lista Enlazada (Linked List)
Lista doblemente enlazada.
Cada nodo adems referencia al nodo anterior.
Simplifica modificar la lista en una posicin
dada.
lista
null 82 23 43 77 45 null
Lista Enlazada (Linked List)
Lista con cabecera.
Se utiliza un nodo sin datos para iniciar la lista.
Simplifica acceder al final de la lista.
lista
82 23 43 77 45
rbol
Conjunto de valores ordenados jerrquicamente.
Cada nodo se compone de un elemento y una
lista de referencias a sus nodos hijos.
rbol k-ario: cada nodo tiene a lo ms k hijos.
Raz
n
B C D
E F G H I
J K L M N O
La segunda propiedad
73 45
permite que los nodos del
rbol se puedan almacenar
en un arreglo. 38 60 33 40
A 95 73 45 38 60 33 40 22 10 52 15 29
Indice 0 1 2 3 4 5 6 7 8 9 10 11
TDA: Diccionario (Dictionary)
Permite almacenar elementos y preguntar
por la existencia de ellos. No se permiten
repeticiones.
Operaciones:
Insertar elemento
Buscar elemento
Eliminar elemento
TDA: Map
Similar a un Diccionario, excepto que
adems del elemento se puede almacenar
un valor asociado.
Se conoce como Map o Associative Array
ya que almacena pares (llave-valor).
Operaciones:
Insertar llave y su valor asociado
Buscar llave y retornar su valor asociado
Eliminar llave y su valor asociado
Estructuras de Datos para
implementar el TDA Diccionario
rbol de Bsqueda Binaria (BST)
| altura(I) - altura(D) | 1
I D
Subrbol
Izquierdo Subrbol
Derecho
rbol AVL
Cuando un nodo deja de
cumplir la propiedad se
puede corregir por medio
de rotaciones de los
nodos.
Se debe determinar el sub-
subrbol ms largo (el que
causa el problema):
I-I I-D D-I D-D
Si es I-I o D-D (por afuera)
hacer rotacin simple
Si es I-D o D-I (por adentro)
hacer rotacin doble
Ejemplo Rotacin Simple
50 50
22 55 22 80
18 80 18 55 91
91
Ejemplo Rotacin Doble
50 50 50
22 55 22 55 22 66
18 80 18 66 18 55 80
66 80
rbol 2-3
El rbol puede contener dos tipos de nodos:
Nodos de 2 hijos y un valor (un nodo binario)
Nodos de 3 hijos y dos valores
Nodo 2: Nodo 3:
X X, Y
>X
<X >X <X <Y >Y
Insertar 1 1
Insertar 2 1,2
Insertar 3 1,2,3 2
split
Overflow!
1 3
Insertar 4 2
1 3,4
2 2,4
Insertar 5 split
1 3,4,5 1 3 5
Overflow!
Insertar 6 2,4
1 3 5,6
Insertar 7 2,4 2,4,6 Overflow!
split
1 3 5,6,7 1 3 5 7
Overflow!
4
split
2 6
1 3 5 7
rbol 2-3
El rbol 2-3 es perfectamente balanceado.
Para cada nodo todos sus subrboles tienen
la misma altura.
Todos los caminos desde la raz a alguna
hoja tienen el mismo largo.
Los costos de bsqueda, insercin y
eliminacin tienen un costo logartmico.
rbol B
Cada nodo puede tener una cantidad mxima de p
elementos ordenados (orden p)
Generalizacin del rbol 2-3 (donde p=3)
El split crea dos nodos cada uno con p/2 elementos y rebalsa un
elemento al padre.
El tamao de p se fija segn un tamao de pgina de disco.
rbol B*: Aumenta el nivel de ocupacin mnimo. Mueve
elementos entre nodos hermanos. El split agrupa dos
nodos completos y crea tres, para lograr una ocupacin
mnima de 66%.
rbol B+: Los datos slo se guardan en las hojas. Los
nodos internos slo contienen separadores para la
bsqueda.
Ejemplo B-Tree de orden 5
G M P X
A C D E J K N O R S T U V Y Z
Insertar B G M P X
A B C D E J K N O R S T U V Y Z
Insertar Q
Ejemplo B-Tree de orden 5
Insertar Q
G M P T X
A B C D E J K N O Q R S U V Y Z
Insertar L
Ejemplo B-Tree de orden 5
Insertar L
P
G M T X
A B C D E J K L N O Q R S U V Y Z
Insertar F
Ejemplo B-Tree de orden 5
Insertar F
C G M T X
A B D E F J K L N O Q R S U V Y Z
Tabla de
hashing X
ndices 0 1 2 3 4 5 6 7 8
Hashing
Cuando XY pero h(X)=h(Y) se dice que
ocurre una colisin.
Encadenamiento: La tabla de hashing es un
arreglo de listas enlazadas con todos los
elementos asignados a la misma ubicacin.
Factor de carga: cantidad de elementos / tamao
de la tabla de hashing.
Direccionamiento abierto: No usar espacio
extra, si no que intentar con otra funcin de
hash (por ejemplo, con h(X)+1).
Encadenamiento
X
h(X)=5
Tabla de
hashing
null Y
null
Material de Estudio
Introduction to Algorithms 3rd edition.
Cormen et al. 2009.
Cap 6 (heaps)
Cap 10 (queue, tree)
Cap 11 (hashtable)
Cap 12 (BST)
Cap 18 (B-Tree)
Material de CC3001
https://users.dcc.uchile.cl/~bebustos/apuntes/cc3001/