Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoria Numero PDF
Teoria Numero PDF
1
Datos
Clase 6
UNLP - Facultad
FOD - CLASE 6
de Informtica
2 Agenda
Binarios
AVL
Arboles
Multicamino
Balanceados
Caractersticas
Arboles B, B*, B+
Balanceados Operaciones
Prefijos simples
UNLP - Facultad
FOD - CLASE 6
de Informtica
3 Arboles introduccin
rboles
Estructuras de datos que permiten localizar en forma ms
rpida informacin de un archivo, tienen intrnsecamente
bsqueda binaria
UNLP - Facultad
FOD - CLASE 6
de Informtica
4 Arboles binarios
0 MM 1 2 8 PR 9 10
MM
1 GT 3 4 9 OP -1 -1
GT ST
2 ST 8 11 10 RX -1 -1
BC JF PR UV
3 BC 5 6 11 UV 12 13
AB CD HI KL OP RX TR ZR 4 JF 7 14 12 TR -1 -1
5 AB -1 -1 13 ZR -1 -1
6 CD -1 -1 14 KL -1 -1
7 HI -1 -1
UNLP - Facultad
FOD - CLASE 6
de Informtica
6 Arboles binarios
rbol balanceado: un rbol est balanceado cuando la altura de la trayectoria
ms corta hacia una hoja no difiere de la altura de la trayectoria ms grande.
MM
GT ST
BC JF PR UV
AB CD HI KL OP RX TR ZR
NI
OC
NR
OA
NZ
UNLP - Facultad
FOD - CLASE 6
de Informtica
7 rboles AVL
rboles AVL
rbol binario balanceado en altura (BA(1)) en el que las
inserciones y eliminaciones se efectan con un mnimo de
accesos.
rbol balanceado en altura:
Para cada nodo existe un lmite en la diferencia que se
permite entre las alturas de cualquiera de los subrboles
del nodo (BA(k)), donde k es el nivel de balance)
Ejemplos:
UNLP - Facultad
FOD - CLASE 6
de Informtica
8 Arboles AVL y Binarios
Caractersticas/Conclusiones
Estructura que debe ser respetada
Mantener rbol, rotaciones restringidas a un
rea local del rbol
Binario: Bsqueda: Log2(N+1)
AVL: Bsqueda: 1.44 log2(N+2)
Ambas performance por el peor caso posible
UNLP - Facultad
FOD - CLASE 6
de Informtica
9 rboles Binarios Paginados
rboles binarios paginados
Problemas de almacenamiento secundario,
buffering, pginas de memoria, varios registros
individuales, minimiza el nmero de accesos
Problema: construccin descendente, como se
elige la raz?, cmo va construyendo balanceado?
8
8 8
8 8 8 8
8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
UNLP - Facultad
FOD - CLASE 6
de Informtica
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
10 rboles multicamino
Generalizacin de rboles binarios, c/nodo tiene k punteros
y k-1 claves (o registros), disminuye la profundidad del rbol,
Orden del rbol.
E1 E2 E3 E4 E5 E6 E7
34 95
10 30 60 76 99
15 40 85 90
UNLP - Facultad
FOD - CLASE 6
de Informtica
11 Arboles balanceados B
PO R1 P1 R2 P2 R3 P3 R4 P4 R5 P5 Nro de registros
UNLP - Facultad
FOD - CLASE 6
de Informtica
12 Arboles Balanceados
Formato del nodo
... ...
UNLP - Facultad
FOD - CLASE 6
de Informtica
15 rboles Balanceados
Bsqueda de informacin:
Busca la llave en el
nodo raiz
localiza la Fin de
Si
llave? proceso
Cuando el elemento
no buscado es mayor que
todas los elementos del
toma el puntero nodo, se sigue el ltimo
anterior a la llave puntero.
mayor
No esta el
no Puntero nulo? Si UNLP - Facultad
FOD - CLASE 6 elemento de Informtica
16 Arboles Balanceados
Performance de bsqueda
Mejor caso: 1 lectura.
Pero caso: h lecturas (con h altura
del rbol).
UNLP - Facultad
FOD - CLASE 6
de Informtica
17 rboles Balanceados
para
1 2
2 2 * [M/2]
h
3 2 * [M/2] * [M/2]
.
h 2 * [M/2]h-1
Relacin entre h y # de nodos
N+1 >= 2 * [M/2]h-1
h <= [ 1 + log[M/2] ((N+1)/2) ]
Si M = 512 y N = 1000000 h <= 3.37 (4 lecturas encuentra un registro)
UNLP - Facultad
FOD - CLASE 6
de Informtica
18 rboles Balanceados
Insercin (creacin)
Los registros se insertan en un nodo Terminal
Casos posibles
El registro tiene lugar en el nodo Terminal (no se produce
overflow): solo se hacen reacomodaminetos internos en
el nodo
El registro no tiene lugar en el nodo Terminal (se produce
overflow): el nodo se divide y los elementos se reparten
entre los nodos, hay una promocin al nivel superior, y
esta puede propagarse y generar una nueva raz.
UNLP - Facultad
FOD - CLASE 6
de Informtica
19 rboles Balanceados
Performance de la insercin
Mejor caso (sin overflow)
H lecturas
1 escritura
Peor caso (overflow hasta la raz, aumenta en uno el
nivel del rbol)
H lecturas
2H+1 escrituras (dos por nivel ms la raz)
UNLP - Facultad
FOD - CLASE 6
de Informtica
20 rboles Balanceados
Eliminacin
Siempre eliminar de nodos terminales (trabajamos con rboles)
Si se va a eliminar un elemento que no esta en nodo terminal llevarlo
primero a nodo terminal
Posibilidades ante eliminacin
Mejor caso: borra un elemento del nodo y no produce underflow, solo
reacomodos ( cantidad de elementos >= [M/2]-1).
Peor caso: se produce underflow (cantidad de elementos < [M/2] 1)
Dos soluciones
Redistribuir
concatenar
UNLP - Facultad
FOD - CLASE 6
de Informtica
21 rboles Balanceados
Redistribuir
Cuando un nodo tiene underflow puede trasladarse llaves de un nodo
adyacente hermano (en caso que este tenga suficientes elementos)
Concatenacin:
Si los nodos adyacentes hermanos estn al mnimo (no les sobra ningn
elemento) no se puede redistribuir, se concatena con un nodo adyacente
disminuyendo el nmero de nodos (y en algunos casos la altura del rbol)
UNLP - Facultad
FOD - CLASE 6
de Informtica
22 rboles Balanceados
Performance de la eliminacin
Mejor caso (borra de un nodo Terminal)
H lecturas
1 escritura
Peor caso (concatenacin lleva a decrementar el
nivel del rbol en 1)
2H 1 lecturas / (3H 1 lecturas)
H + 1 escrituras
UNLP - Facultad
FOD - CLASE 6
de Informtica
23 rboles Balanceados B+
secuenciales
indizados
recorrida por algn Secuencial (acceder por orden fsico,
tipo de orden devolviendo el registro en orden de llave)
Debemos encontrar
una solucin que
agrupe ambos casos
UNLP - Facultad
FOD - CLASE 7
de Informtica
24 rboles Balanceados
Conjunto de secuencias
Conjunto de registros que mantienen un orden fsico por llave mientras que se
agregan o quitan datos, si podemos mantenerlo podemos indizarlos
Posible solucin
Mantener bloques de datos
Cada bloque con registros y puntero al siguiente
UNLP - Facultad
FOD - CLASE 7
de Informtica
26 rboles Balanceados B+
Propiedades
Cada pgina tiene mximo M descendientes
Cada pgina, menos la raz y las hojas, tienen
Consiste en un conjunto de grupos de entre [M/2] y M hijos
registros ordenados por clave en La raz tiene al menos dos descendientes (o
forma secuencial, junto con un ninguno)
conjunto de ndices, que proporciona Todas las hojas aparecen en igual nivel
acceso rpido a los registros. Una pgina que no sea hoja si tiene K
descendientes contiene K-1 llaves
Los nodos terminales representan un conjunto
de datos y son linkeados juntos.
Se inserta Gamma
Gamma
UNLP - Facultad
FOD - CLASE 7
de Informtica
28 rboles Balanceados B+
Separadores
Derivados de las llaves de los registros que limitan
un bloque en el conjunto de secuencia
Separadores ms cortos, ocupan espacio mnimo
rbol B+ de prefijos simples
rbol B+ en el cual el conjunto ndice est
constituido por separadores ms cortos
UNLP - Facultad
FOD - CLASE 7
de Informtica
29 rboles Balanceados B+
Nodo Raz
Nodo Raz
Nodo Inicial Alfa Beta Gamma Kappa Phi
Gon
UNLP - Facultad
FOD - CLASE 6
de Informtica
30 rboles Balanceados conclusiones
rbol B rbol B+
Ubicacin de datos Nodos (cualquiera) Nodo Terminal
Tiempo de bsqueda = =
Procesamiento
Lento (complejo) Rpido (con punteros)
secuencial
Puede requerir +
Insercin eliminacin Ya discutida
tiempo
UNLP - Facultad
FOD - CLASE 6
de Informtica
31 rboles
Operaciones clsicas
Comparaciones
rbol B rbol B+
Tiempo de bsqueda = =
Rpido (con
Procesamiento secuencial Lento (complejo)
punteros)
Puede requerir
Insercin eliminacin Ya discutida
+ tiempo
UNLP - Facultad
FOD - CLASE 7
de Informtica
32 rboles Balanceados B*
Eliminacin
Redistribucin Insercin
Concatenacin
Redistribucin como forma
de mejorar las inserciones.
Divisin
UNLP - Facultad
FOD - CLASE 7
de Informtica
33 rboles Balanceados B*
rbol B especial en que cada nodo est lleno por lo menos en 2/3 partes
(orden M)
Cada pgina, menos la raz y las hojas, tienen al menos [(2M 1) / 3] descendientes
Una pgina que no sea hoja si tiene K descendientes contiene K-1 llaves
UNLP - Facultad
FOD - CLASE 7
de Informtica
35 rboles Balanceados B*
Operaciones de Bsqueda
Igual que el rbol B comn
Operaciones de Insercin
Tres casos posible
Derecha: redistribuir con nodo adyacente hermano de la derecha (o
izq. si es el ltimo)
Izquierda o derecha: si el nodo de la derecha est lleno y no se puede
redistribuir, se busca el de la izquierda.
Izquierda y derecha: busca llenar los tres nodos, estos tendrn un
parte llena.
Ejemplos
UNLP - Facultad
IBD - CLASE 7
de Informtica
36 rboles Balanceados B*
Costo de la redistribucin
Mejor Peor
Derecha RRWW RRWWW
Izq o der RRWW RRRWWW
(divido solo dos)
Izq y der RRWW RRRWWWW
UNLP - Facultad
FOD - CLASE 6
de Informtica
38
CONSULTAS
UNLP - Facultad
FOD - CLASE 6
de Informtica