Академический Документы
Профессиональный Документы
Культура Документы
Fundamentos de Organizacin de
Datos
Clase 6
FOD - CLASE 6
UNLP - Facultad
de Informtica
Agenda
Arboles
Binarios
AVL
Multicamino
Balanceados
Arboles
Balanceados
Caractersticas
B, B*, B+
Operaciones
Prefijos simples
FOD - CLASE 6
UNLP - Facultad
de Informtica
Arboles introduccin
Problemas con los ndices?
La bsqueda binaria aun es costosa
Mantener los ndices ordenados es costoso
Solucin RAM
Objetivo persistencia de datos
rboles
Estructuras de datos que permiten localizar en forma ms
rpida informacin de un archivo, tienen intrnsecamente
bsqueda binaria
FOD - CLASE 6
UNLP - Facultad
de Informtica
Arboles binarios
Que es un rbol binario?
Estructuras de datos donde cada nodo tiene dos
sucesores, a izquierda y a derecha
UNLP - Facultad
de Informtica
Arboles binarios
Raz 0
Clave Hijo
izq
Hijo
Der
Clave Hijo
izq
Hijo
Der
MM
PR
10
GT
OP
-1
-1
ST
11
10
RX
-1
-1
BC
11
UV
12
13
JF
14
12
TR
-1
-1
AB
-1
-1
13
ZR
-1
-1
CD
-1
-1
14
KL
-1
-1
HI
-1
-1
MM
GT
ST
BC
AB
JF
CD
HI
PR
KL
FOD - CLASE 6
OP
UV
RX
TR
ZR
UNLP - Facultad
de Informtica
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.
Inconveniente de los binarios: se desbalancean fcilmente.
Supongamos que llegan las claves : NI OC NR OA NZ
MM
GT
ST
BC
AB
JF
CD
HI
PR
KL
OP
UV
RX
TR
ZR
NI
OC
NR
OA
FOD - CLASE 6
NZ
UNLP - Facultad
de Informtica
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:
FOD - CLASE 6
UNLP - Facultad
de Informtica
UNLP - Facultad
de Informtica
FOD - CLASE 6
UNLP - Facultad
de Informtica
rboles multicamino
10
10
15
30
40
FOD - CLASE 6
34
95
60
76
E2
E3
E4
E5
E6
E7
99
85
90
UNLP - Facultad
de Informtica
11
Arboles balanceados B
Son rboles multicamino con una construccin especial en forma
ascendente que permite mantenerlo balanceado a bajo costo.
Propiedades de un rbol B de orden M:
Ningn nodo tiene ms de M hijos
C/nodo (menos raz y los terminales) tienen como mnimo [M/2] hijos
La raz tiene como mnimo 2 hijos (o sino ninguno)
Todos los nodos terminales a igual nivel
Nodos no terminales con K hijos contienen K-1 registros. Los nodos terminales tienen:
Mnimo [M/2] 1 registros
Mximo M 1 registros
PO R1 P1 R2 P2 R3 P3 R4 P4
FOD - CLASE 6
R5
P5
Nro de registros
UNLP - Facultad
de Informtica
12
Arboles Balanceados
Formato del nodo
...
...
Hijos (M celdas)
Datos ( M -1 celdas)
Nro de Registros
P0
FOD - CLASE 6
Dato 1
P1
Dato 2
P2
..
PM-2
Dato M-2
PM-1
Dato M-1
PM
UNLP - Facultad
de Informtica
13
Arboles balanceados
UNLP - Facultad
de Informtica
14
Arboles Balanceados
Nodo Raiz: 7
Punteros
0
1
2
3
4
5
6
7
FOD - CLASE 6
-1
-1
0
-1
-1
-1
1
2
-1
-1
5
-1
-1
-1
4
6
-1
-1
3
-1
2
57
20
49
88
24
80
53
Datos
15
60
43
75
UNLP - Facultad
de Informtica
Nro Datos
2
3
2
1
1
1
1
1
15
rboles Balanceados
Bsqueda de informacin:
Busca la llave en el
nodo raiz
localiza la
llave?
Si
Fin de
proceso
Cuando el elemento
buscado es mayor que
todas los elementos del
nodo, se sigue el ltimo
puntero.
no
toma el puntero
anterior a la llave
mayor
FOD - CLASE 6
no
Puntero nulo?
Si
No esta el
elemento
UNLP - Facultad
de Informtica
16
Arboles Balanceados
Performance de bsqueda
Mejor caso: 1 lectura.
Pero caso: h lecturas (con h altura
del rbol).
FOD - CLASE 6
UNLP - Facultad
de Informtica
17
rboles Balanceados
Cota
para
h
Nivel
# mnimo de descendientes
2 * [M/2]
2 * [M/2] * [M/2]
.
h
2 * [M/2]h-1
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.
FOD - CLASE 6
UNLP - Facultad
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)
FOD - CLASE 6
UNLP - Facultad
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
FOD - CLASE 6
UNLP - Facultad
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)
FOD - CLASE 6
UNLP - Facultad
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
FOD - CLASE 6
UNLP - Facultad
de Informtica
23
rboles Balanceados B+
Archivos
secuenciales
indizados
Debemos encontrar
una solucin que
agrupe ambos casos
FOD - CLASE 7
UNLP - Facultad
de Informtica
rboles Balanceados
24
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
Alonso
Alonso
Barca
Carli
Barca
Carli
Detomaso Fernandez
Detomaso Fernandez
FOD - CLASE 7
UNLP - Facultad
de Informtica
26
rboles Balanceados B+
Propiedades
Consiste en un conjunto de grupos de
registros ordenados por clave en
forma secuencial, junto con un
conjunto de ndices, que proporciona
acceso rpido a los registros.
UNLP - Facultad
de Informtica
27
rboles Balanceados B+
Nodo Raz
Nodo Inicial
Nodo Raz
Se inserta Gamma
Gamma
Nodo Inicial
FOD - CLASE 7
Alfa Beta
Gamma
Kappa
Phi
UNLP - Facultad
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
UNLP - Facultad
de Informtica
29
rboles Balanceados B+
Nodo Raz
Nodo Raz
Nodo Inicial
Alfa Beta
Gamma
Kappa
Phi
Gon
Nodo Inicial
FOD - CLASE 6
Garcia Gomez
UNLP - Facultad
de Informtica
30
Ubicacin de datos
Tiempo de bsqueda
Procesamiento
secuencial
Insercin eliminacin
FOD - CLASE 6
rbol B
rbol B+
Nodos (cualquiera)
Nodo Terminal
Lento (complejo)
Ya discutida
Puede requerir +
tiempo
UNLP - Facultad
de Informtica
31
rboles
Operaciones clsicas
Comparaciones
Ubicacin de datos
Tiempo de bsqueda
Procesamiento secuencial
Insercin eliminacin
FOD - CLASE 7
rbol B
rbol B+
Nodos (cualquiera)
Nodo Terminal
Lento (complejo)
Rpido (con
punteros)
Ya discutida
Puede requerir
+ tiempo
UNLP - Facultad
de Informtica
32
rboles Balanceados B*
Eliminacin
Redistribucin
Concatenacin
FOD - CLASE 7
Insercin
Redistribucin como forma
de mejorar las inserciones.
Divisin
UNLP - Facultad
de Informtica
33
rboles Balanceados B*
UNLP - Facultad
de Informtica
34
rboles Balanceados B*
rbol B especial en que cada nodo est lleno por lo menos en 2/3 partes
Propiedades
(orden M)
FOD - CLASE 7
UNLP - Facultad
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
IBD - CLASE 7
UNLP - Facultad
de Informtica
36
rboles Balanceados B*
Costo de la redistribucin
FOD - CLASE 6
Mejor
Peor
Derecha
RRWW
RRWWW
Izq o der
RRWW
RRRWWW
Izq y der
RRWW
RRRWWWW
UNLP - Facultad
de Informtica
38
CONSULTAS
FOD - CLASE 6
UNLP - Facultad
de Informtica