ar boles na rios

60
ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu.co NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS Árboles n-arios, 1-2-3, 2-3 y B 1

Upload: angelusho

Post on 30-Jul-2015

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS

Árboles n-arios, 1-2-3, 2-3 y B

1

Page 2: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Agenda

• Algorítmica de árboles n-arios

• Árboles 1-2-3

• Árboles 2-3

• Árboles B

2

Page 3: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles n-arios• Generalización de los árboles binarios

• Estructura recursiva en la que cada elemento tiene n árboles n-arios asociados

3

e

ai ana1......

Formalismo abstracto

Page 4: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles n-arios

• Conceptos que se extienden de árboles binarios

• Nodo: elemento del árbol• Raíz: nodo inicial del árbol• Hoja: nodo sin hijos• Camino: nodos entre dos elementos incluyéndolos• Rama: camino entre la raíz y una hoja• Altura: número de nodos en la rama más larga• Peso: número de nodos en el árbol

4

Page 5: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles n-arios

• Conceptos que se extienden de árboles binarios

• Orden de un elemento:• Número de subárboles asociados• Una hoja es un elemento de orden 0

• Orden de un árbol n-ario:• Máximo orden de sus elementos

5

Page 6: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles n-arios

Recorridos:

• Inorden:

• Preorden:

• Postorden:

6

a

b c

e f

d

g h i

j k l m

b,a,e,c,f,j,g,k,l,m,d,h,ia,b,c,e,f,d,g,j,k,l,m,h,ib,e,f,c,j,k,l,m,g,h,i,d,a

Page 7: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Implementación genérica

7

Page 8: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Implementación genérica

8

Page 9: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Algorítmica• Similar a un árbol binario

• Primer nivel:

• trata el caso de un árbol vacío

• crea estructuras de datos como iteradores

• Segundo nivel:

• planteamiento recursivo

• Se tienen n avances posibles en la recursión

• Se requiere un ciclo para iterar sobre cada avance.

9

Page 10: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Ejemplo

10

Page 11: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Ejemplo

11

Page 12: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Ejemplo

12

Page 13: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

A trabajar...

13

public class ArbolNArio<T>

{

public Iterador<T> darNivel( int nivel )

{

}

}

Page 14: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Agenda

• Algorítmica de árboles n-arios

• Árboles 1-2-3

• Árboles 2-3

• Árboles B

14

Page 15: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

15

• Árbol n-ario ordenado de orden 3

• En cada nodo tiene 1 ó 2 elementos

50 75

20 30 60 80 90

52 58 77 85 86

Nodo con dos elementos

Nodo con un elemento

Page 16: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

16

• Cada nodo tiene 1, 2 ó 3 subárboles asociados

50 75

20 30 60 80 90

52 58 77 85 86

3 subárboles

1 subárbol 2 subárboles

Page 17: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

17

• No hay elementos repetidos

• El elemento de la izquierda de cada nodo (raíz izquierda) es menor que el elemento de su derecha (raíz derecha)

50 75

20 30 60 80 90

52 58 77 85 86

Raíz izquierda

Raíz derecha

Page 18: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

18

• El primer subárbol es un árbol 1-2-3 que contiene elementos menores que la raíz izquierda

50 75

20 30 60 80 90

52 58 77 85 86

Primer subárbol

Page 19: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

19

• El segundo subárbol es un árbol 1-2-3 que contiene elementos mayores que la raíz izquierda pero menores que la raíz derecha

Segundo subárbol

50 75

20 30 60 80 90

52 58 77 85 86

Page 20: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

20

• El tercer subárbol es un árbol 1-2-3 que contiene los elementos mayores que la raíz derecha

50 75

20 30 60 80 90

52 58 77 85 86

Tercer subárbol

Page 21: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 1-2-3: Árbol triario ordenado

21

• Si la raíz derecha está vacía, su tercer subárbol debe ser vacío (el segundo puede o no ser vacío).

50 75

20 30 60 80 90

52 58 77 85 86

Page 22: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

A trabajar...• Declaración en Java de la clase

• Para valores enteros simples

• Algorítmica básica:

• Búsqueda

• Inserción

• Supresión

22

Page 23: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Agenda

• Algorítmica de árboles n-arios

• Árboles 1-2-3

• Árboles 2-3

• Árboles B

23

Page 24: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3: Árbol triario ordenado balanceado

24

• Motivación:

• Optimizar el tiempo de acceso en una estructura de datos en memoria secundaria

• Acceso a la información en O(log3N)

• Baja complejidad en los algoritmos de actualización.

Page 25: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles 2-3

• Es un árbol 1-2-3 y además:

• Todas las hojas se encuentran en el mismo nivel

• Todos los nodos internos tienen por lo menos 2 subárboles asociados no vacíos, aunque la raíz derecha este vacía.

25

17 25

10 15 20 23 40 50

Page 26: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3

• Todos los nodos pueden tener hasta 2elementos.

• Un nodo interno puede tener 2 ó 3 hijos, dependiendo de cuántos elementos posea el nodo:

• Si hay 1 elemento en el nodo, debe tener 2 hijos

• Si hay 2 elementos en el nodo, debe tener 3 hijos

26

Page 27: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Ejemplos

27

Cada nodo tiene hasta 2 elementos

Cada nodo interno puede tener 2 o 3 hijos (dependiendo de cuántos elementos posea el nodo)

Page 28: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3

• Formalismo abstracto

28

r1 r2

a1 a2 a3

a =

a = ∆ árbol vacío

árbol NO vacío

Page 29: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3: Inserción

• El crecimiento NO se hace a nivel de las hojas

• Aunque la inserción se sigue haciendo en las hojas

• El crecimiento se hace a nivel de la raíz

• Todas las hojas se deben mantener siempre en el mismo nivel

29

Page 30: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3: Inserción Localizar la hoja en la cual se debe agregar el

elemento

Insertar

• Caso1: Existe espacio en el nodo -> la estructura del árbol NO se altera

30

Page 31: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3: Inserción• Caso 2: El nodo está lleno. Se debe modificar la estructura del

árbol:

• El nodo se parte en dos nodos del mismo nivel

• Los tres elementos (dos elementos del nodo y el nuevo elemento) se reparten de la siguiente manera:

31

Page 32: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3: Inserción

• El elemento que no fue incluido en los dos nodos nuevos se sube en la estructura y se inserta en su padre.

• Se repite el proceso hacia arriba:• Al partir en dos el nodo se está generando un nuevo subárbol que

puede generar que los ancestros se tengan que partir a su vez para poderlo incluir.

32

Page 33: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

33

Se parte en dos

Se crea un nivel

Page 34: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

34

Page 35: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

35

Page 36: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

36

Page 37: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

37

Page 38: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

38

Page 39: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Inserción

39

Page 40: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3: Eliminación• Caso1: El elemento está en una hoja

40

Page 41: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación• Caso1: El elemento está en una hoja

41

Se pierde un nivel

Page 42: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación

• Caso1: El elemento está en una hoja

42

Page 43: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación

• Caso1: El elemento está en una hoja

43

Page 44: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación• Caso1: El elemento está en una hoja

44

Se pierde un nivel

Page 45: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación• Caso1: El elemento está en una hoja

45

Page 46: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación• Caso 2: El elemento no está en una hoja

• Se busca un valor que se encuentre en una hoja y que pueda reemplazar el valor. (Como está ordenado, el candidato sería el menor del subárbol derecho)

• Solución para el caso 1

46

Page 47: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación

47

Page 48: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación

48

• Ejemplo: Eliminar el 63

Page 49: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación

49

• Ejemplo: Eliminar el 63

Page 50: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árbol 2-3 : Eliminación

50

• Ejemplo: Eliminar el 63

Page 51: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Implementación

51

Page 52: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Implementación

52

Page 53: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Entrenador WEB

53

Page 54: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

A trabajar...• Desarrolle el método que permite buscar un elemento en un árbol 2-3

54

...

Page 55: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

A trabajar...• Muestre el proceso de inserción en un árbol 2-3 de la siguiente

secuencia de valores:

• 25 – 86 – 34 – 23 – 4 – 98 – 12 – 56 – 74 – 77 - 80

55

Page 56: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Agenda

• Algorítmica de árboles n-arios

• Árboles 1-2-3

• Árboles 2-3

• Árboles B

56

Page 57: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles B• Árbol n-ario ordenado y balanceado

• Generalización de un árbol 2-3

57

B de orden 5

Page 58: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles B• Cada nodo tiene k elementos y k+1 subárboles B asociados

• Un árbol 2-3 es un árbol B de orden 3

58

Page 59: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Árboles B• Para un árbol B de orden k:

• Todas las hojas se encuentran al mismo nivel

• Todos los nodos internos, excepto la raíz , tienen por lo menos ( k+1)/2 subárboles asociados no vacíos

• El número de elementos de un nodo interno es uno menos que el número de subárboles asociados

59

Page 60: Ar Boles Na Rios

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Preguntas...

60