Está en la página 1de 21

Introducci

on Propiedades Operaciones en un Arbol


2-3 Eficiencia de las Operaciones

Estructura de Datos

Clase 16: Arboles


2-3
Carlos Contreras Bolton
Universidad Andr
es Bello
Facultad de Ingeniera

22 de mayo de 2014

Carlos Contreras Bolton Estructura de Datos

1/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Contenido

1 Introducci
on
2 Propiedades

3 Operaciones en un Arbol
2-3
4 Eficiencia de las Operaciones

Carlos Contreras Bolton Estructura de Datos

2/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Introduccion

Son arboles de grado 3.


Son ordenados y balanceados.
Cada nodo puede contener hasta dos elementos.
Los nodos internos pueden tener 2 o 3 hijos, segun los
elementos que posea.

Carlos Contreras Bolton Estructura de Datos

3/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Introduccion
No existen elementos repetidos.
Todas las hojas estan al mismo nivel.
Estos arboles fueron introducidos por R.Bayer y
E.McCreight en 1972.
Se encuentran comunmente en las implementaciones de
bases de datos y sistemas de archivos.
Fueron introducidos con el principal objetivo de mejorar el
tiempo de acceso en estructura de datos manejada en
memoria secundaria, en las cuales el numero de consultas
a un registro influye de manera determinante en el tiempo
de respuesta de la operacion.

Carlos Contreras Bolton Estructura de Datos

4/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Arbol
2-3
Propiedades

Nodos Sea h la altura del arbol. Tendra como maximo


2h 1 nodos si todos los nodos son del tipo
2-nodo.
3h 1 nodos si todos los nodos son del tipo
3-nodo.
Altura Sea n la cantidad de nodos del arbol. Se dice que
la altura h esta en el rango
[log3 (n + 1), log2 (n + 1)]
.

Carlos Contreras Bolton Estructura de Datos

5/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Arbol
2-3
Propiedades

Raz izquierda Corresponde al elemento izquierdo de cada


nodo y debe ser menor que la raz derecha
(elemento derecho).
Raz derecha Corresponde al elemento derecho de cada
nodo y debe ser mayor que la raz izquierda
(elemento izquierdo).

Carlos Contreras Bolton Estructura de Datos

6/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Arbol
2-3
Propiedades

Subarbol izquierdo Es un arbol 2-3 cuyos elementos son


menores que la raz izquierda del padre.
Subarbol derecho Es un arbol 2-3 cuyos elementos son
mayores que la raz derecha del padre.
Subarbol central Es un arbol 2-3 cuyos elementos son
mayores que la raz izquierda del padre y
menores que la raz derecha del padre.

Carlos Contreras Bolton Estructura de Datos

7/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Arbol
2-3

Carlos Contreras Bolton Estructura de Datos

8/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Arbol
2-3
Representaci
on

Se usan dos datos, y


tres punteros.
t y p e d e f s t r u c t Nodo {
Info izq ;
Info der ;
s t r u c t Nodo i z q ;
s t r u c t Nodo c e n ;
s t r u c t Nodo d e r ;
}Nodo ;

Carlos Contreras Bolton Estructura de Datos

9/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un arbol 2-3

Busqueda
Insertar.
Split.

Eliminar.

Carlos Contreras Bolton Estructura de Datos

10/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

B
usqueda

Para buscar un dato en un arbole 2-3


1 Si el nodo est
a vaco, el elemento no se encuentra.
2 En caso contrario, se compara con los elementos de la
raz. Si no se encuentra hacemos:
1

Si el elemento es menor que el elemento izquierdo,


seguir buscando por el subarbol izquierdo.
Si el elemento es mayor que el elemento derecho seguir
buscando por el subarbol derecho.
En otro caso seguir buscando en el subarbol central.

Carlos Contreras Bolton Estructura de Datos

11/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Insertar

Se produce una cadena de divisiones e inserciones hasta


que un nodo no necesite dividirse o se llegue a la raz.
Para insertar un elemento se debe realizar una busqueda
infructuosa y se inserta en el ultimo nodo visitado. Se
distinguen dos casos.

Carlos Contreras Bolton Estructura de Datos

12/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Insertar: Caso I

Si el nodo donde se inserta X tiene un solo elemento


ahora queda con 2 elementos.

Carlos Contreras Bolton Estructura de Datos

13/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Insertar: Caso II

Si el nodo donde se inserta X tiene dos elementos, este


quedara overflow.
Se realiza una operacion de split:
El nodo overflow se divide en dos nodos con un valor
cada uno (el menor y el mayor de los tres).
El valor del medio sube un nivel, al padre del nodo
overflow.

Carlos Contreras Bolton Estructura de Datos

14/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Insertar: Ejemplo

Carlos Contreras Bolton Estructura de Datos

15/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Insertar: Ejemplo

Carlos Contreras Bolton Estructura de Datos

16/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Eliminar: Caso I

El nodo donde se encuentra Z contiene dos elementos.


En este caso se elimina Z y el nodo queda con un solo
elemento.

Carlos Contreras Bolton Estructura de Datos

17/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Eliminar: Caso II

El nodo donde se encuentra Z contiene un solo elemento.


En este caso al eliminar el elemento Z el nodo queda
underflow.
Si el nodo hermano posee dos elementos, se le quita uno
y se inserta en el nodo underflow.

Si el nodo hermano posee solo un elemento, se le quita


un elemento al padre y se inserta en el nodo underflow.

Carlos Contreras Bolton Estructura de Datos

18/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Operaciones en un Arbol
2-3

Eliminar: Caso II

Si la operacion produce underflow en el nodo padre, se


repite el procedimiento un nivel mas arriba. Si la raz
queda vaca, esta se elimina.

Carlos Contreras Bolton Estructura de Datos

19/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Eficiencia de las Operaciones

Operaciones

Acceder
Buscar
Insertar
Eliminar

Arreglo
Estatico

Arreglo
Dinamico

O(1)
O(n)

O(1)
O(n)
O(n)
O(n)

Lista
Simple
Enlazada
O(n)
O(n)
O(1)
O(1)

Carlos Contreras Bolton Estructura de Datos

Lista
Doble
Enlazada
O(n)
O(n)
O(1)
O(1)

Arbol
BB

Arbol
AVL

O(log n)
O(log n)
O(log n)
O(log n)

O(log n)
O(log n)
O(log n)
O(log n)

Arbol
2-3
(peor caso)

O(log(n))
O(1)
O(log(n))
O(log n) O(log(n))
O(log n) O(log(n))
Heap
Binario

20/21


Introducci
on Propiedades Operaciones en un Arbol
2-3 Eficiencia de las Operaciones

Arbol
2-3

El crecimiento del arbol 2-3 NO ocurre en el nivel de las


hojas, si no hacia la raz.
Garantiza que su estructura estara equilibrado segun la
altura.
El encontrar un elemento podra necesitar un menor
recorrido, debido a la posibilidad de tener 3 hijos.
Mantener el equilibrio es relativamente simple en
comparacion con un arbol binario.
Si el arbol tiene tres hijos, el arbol contiene mas nodos
que un arbol binario completo de la misma altura.

Carlos Contreras Bolton Estructura de Datos

21/21

También podría gustarte