Árboles
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Árboles

el

  • 3,290 reproducciones

Estructuras de datos: árboles binarios y multicamino

Estructuras de datos: árboles binarios y multicamino

Estadísticas

reproducciones

reproducciones totales
3,290
reproducciones en SlideShare
3,289
reproducciones incrustadas
1

Actions

Me gusta
0
Descargas
53
Comentarios
0

1 insertado 1

http://www.linkedin.com 1

Accesibilidad

Categorias

Detalles de carga

Uploaded via as Microsoft PowerPoint

Derechos de uso

© Todos los derechos reservados

Report content

Marcada como inapropiada Marcar como inapropiada
Marcar como inapropiada

Seleccione la razón para marcar esta presentación como inapropiada.

Cancelar
  • Full Name Full Name Comment goes here.
    ¿Está seguro?
    Tu mensaje aparecerá aquí
    Processing...
Publicar comentario
Edite su comentario

Árboles Presentation Transcript

  • 1. ÁrbolesEstructuras de Datos Vicente García Díaz – garciavicente@uniovi.es Universidad de Oviedo, 2011
  • 2. 2Tabla de contenidos1. Conceptos básicos2. Árboles binarios 1. Árboles perfectamente equilibrados 2. Árboles de búsqueda 1. Árboles simplemente equilibrados 2. Árboles óptimos 3. Árboles desplegados 3. Árboles de expresión3. Árboles multicamino 1. Árboles B4. Bibliografía
  • 3. 3Conceptos básicos
  • 4. 4Conceptos básicos Árboles ANodos hermanos con un mismo padre Nodo Altura Profundidad Tamaño A 3 0 8 B C D B 1 1 2 C 2 1 4 D 0 1 1 E 0 2 1 E F G F 0 2 1 Antecesor y G 1 2 2 descendiente H 0 3 1 H ¿Grado del nodo C? -Un nodo raíz -Todos los nodos son conectados desde un único nodo (nodo padre) …¿y del árbol? -Sólo hay un camino desde el nodo raíz a cada nodo -Los nodos que no tienen hijos son nodos hoja
  • 5. 5Conceptos básicos Árbol completo de altura a y grado g • El que tiene el máximo número de nodos posible 20 = 1 a 1 i 21 = 2 nmax i 0 g Ejercicio 1: ¿Cuál es el número máximo de nodos de un árbol de altura 5 y grado 4?
  • 6. 6Conceptos básicos Camino de búsqueda interno • Número de nodos que hay que recorrer para encontrar un determinado nodo A n representa el número de nodos del árbol B C D 1 a LmediaC.I . i 1 i n *i n H E F GEjercicio 2: ¿Cuál es la longitud media del camino interno del árbol Imostrado?
  • 7. 7Árboles binarios•Competiciones deportivas•Árboles genealógicos•Operaciones binarias•…
  • 8. 8Árboles binarios Recorrido de un árbol (Preorden) N A B C Izq Der D E F G H Solución: A, B, D, C, E, F, G, H
  • 9. 9Árboles binarios Recorrido de un árbol (Inorden) N A B C Izq Der D E F G H Solución: D, B, A, E, C, G, F, H
  • 10. 10Árboles binarios Recorrido de un árbol (Postorden) N A B C Izq Der D E F G H Solución: D, B, E, G, H, F, C, A
  • 11. 11Árboles binarios Recorrido de un árbol Ejercicio 3: Especifica el orden en el que se recorrerían los nodos del siguiente árbol en caso de recorrerse en preorden, inorden y postorden A B C F D E G H I
  • 12. 12Árboles binarios Recorrido de un árbol Ejercicio 4: Escribe el pseudocódigo de un método recursivo que recorra en preorden un árbol y refleje en pantalla el nivel en el que está situado el nodo
  • 13. 13Árboles binarios Altura de un árbol A • Máxima B O(n) C … • Mínima A B C O(log2n) D E F G
  • 14. 14Árboles binarios perfectamente equilibrados Árboles perfectamente equilibrados (APE) • Objetivo: Conseguir trabajar con árboles de altura mínima • Hay que distribuir el máximo número posible de nodos en cada nivel n | ni nd | 1 n ni nd
  • 15. 15Árboles binarios perfectamente equilibrados Algoritmo 1- Usar un nodo para la raíz 2- Generar el subárbol izquierdo con ni = n div 2 nodos 3- Generar el subárbol derecho con nd = n – ni – 1 nodos 4- Repetir los pasos 1, 2 y 3 hasta que no haya más nodos Ejercicio 5: Dibuja un árbol perfectamente equilibrado con los siguientes nodos: A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T
  • 16. 16Árboles binarios perfectamente equilibrados Altura mínima vs APE APE Altura mínima Binarios Ejercicio 6: Especifica si los siguientes árboles tienen altura mínima y si son APE A A 1) 2) B D B C C D E
  • 17. 17
  • 18. 18Árboles binarios de búsqueda Árboles binarios de búsqueda (ABB) • Objetivo: Permitir utilizar un árbol como una estructura para buscar elementos con complejidad logarítmica • Si el árbol está organizado de 5 modo que para todo nodo ni, todas las claves de los nodos del subárbol izquierdo de ni 3 7 son menores que la clave de ni, y todas las claves del 1 4 6 9 subárbol derecho de ni son mayores que la clave de ni, entonces el árbol es de 10 búsqueda
  • 19. 19Árboles binarios de búsqueda Inserción Ejercicio 7: Construye un árbol binario de búsqueda para una serie de nodos cuya clave es: 10, 100, 60, 30, 2, -43, 70, 90, 23, 43, 65, 13, 230, 49, 7, 40, 50, 20, 15, 3 Ten en cuenta que los nodos han aparecido de uno en uno en orden, siendo el primero de ellos el nodo con clave 10 y el último, el nodo con clave 3 Es decir, habrá que empezar con un árbol con un solo elemento (10) y después el árbol crece a dos elementos (10, 100) y así sucesivamente hasta el final
  • 20. 20 10Árboles binarios de búsqueda 2 100 Inserción 60 230 -43 7 3 30 70 23 Ejercicio 8: ¿Cuál es la 43 65 90 diferencia entre recorrer el árbol de búsqueda: 13 -En Inorden (primero izquierda) 40 49 y -En Inorden (primero derecha) 20 50 15
  • 21. 21Árboles binarios de búsqueda Borrado • No es tan fácil como la inserción • Posibilidades ▫ Nodo terminal  muy fácil 5 ▫ Nodo con un solo hijo  fácil ▫ Nodo con dos hijos  más difícil 3 7 1 4 6 9 10
  • 22. 22Árboles binarios de búsqueda 5 Borrado 3 8 • Borrado de nodo con dos hijos ▫ Reemplazar el elemento a borrar 1 4 6 9 por:  El elemento más a la derecha del subárbol izquierdo 7  El elemento más a la izquierda del subárbol derecho 6 4 3 3 8 8 1 4 1 6 9 9 7 7
  • 23. 23Árboles binarios de búsqueda Borrado Ejercicio 9: Dibuja cómo irá evolucionando el siguiente árbol binario de búsqueda si se borran (en orden) los siguientes nodos: 46, 40, 15, 30, 70, 60, 90, 50 50 30 70 15 40 60 90 1 25 33 46 56 62 87 99
  • 24. 24Árboles binarios de búsqueda Altura mínima de los árboles • Lo ideal es que los árboles tengan altura mínima para conseguir un orden logarítmico • Sin embargo: ▫ Las operaciones de insertar y borrar que acabamos de ver provocan que los árboles no tengan altura mínima  Sólo funciona la búsqueda ▫ Conseguir mantener un árbol perfectamente equilibrado es muy costoso
  • 25. 25Árboles binarios de búsqueda Alternativas a la altura mínima • ALTERNATIVA 1: ▫ No cuidar la altura del árbol  La altura puede ser de n en el caso peor => O(n)  Estudios empíricos muestran que: altura_media = 1,386 * altura_minima  Así, el comportamiento medio para buscar, borrar e insertar sería O(log2n) • ALTERNATIVA 2: ▫ Cuidar la altura del árbol  Cuando se necesita garantizar una complejidad logarítmica  Árboles simplemente equilibrados
  • 26. 26Árboles binarios de búsqueda AVL Árboles simplemente equilibrados (AVL) (Adelson – Velskii – Landis) • Objetivo: Conseguir realizar búsquedas, inserciones y borrados con una complejidad logarítmica n | hi hd | 1 APE n AVL Altura mínima Binarios hi hd ni nd
  • 27. 27Árboles binarios de búsqueda AVL Áltura mínima vs APE vs AVL Ejercicio 10: Especifica si los siguientes árboles: 1) tienen altura mínima, 2) son APE, 3) son AVL1) 2) 3) 4)
  • 28. 28Árboles binarios de búsqueda AVL Algoritmo (de Fibonacci) 1- Decidir la altura a del árbol - Para a = 0 => árbol vacío (T0) - Para a = 1 => árbol con un elemento (T1) - Para a > 1 => colocar un elemento raíz asignarle un árbol Ta-1 a la izquierda asignarle un árbol Ta-2 a la derecha Ejercicio 11: Dibuja un árbol AVL de Fibonacci de altura a = 6
  • 29. 29Árboles binarios de búsqueda AVL Inserción • Cuando se inserta un nuevo nodo hay que mantener el equilibrio ▫ Posibles desequilibrios B A Rotación simple (izq) A 3 B 1 1 2 1 2 3 2
  • 30. 30Árboles binarios de búsqueda AVL Inserción • Posibles desequilibrios C B Rotación doble (izq) A A C B 4 2 3 1 1 4 2 3 1 2
  • 31. 31Árboles binarios de búsqueda AVL Inserción Ejercicio 12: Dibuja cómo irá evolucionando un árbol AVL si se insertan (en orden) los siguientes nodos (corrigiendo los posibles desequilibrios): 6, 7, 15, 4, 1, 6.5, 9, 100, 150
  • 32. 32Árboles binarios de búsqueda AVL Borrado Ejercicio 13: Dibuja cómo irá evolucionando el • Igual que para los árboles binarios de búsqueda “normales” siguiente árbol AVL ▫ Nodo terminal, con un solo hijo, con dos hijos si se borran (en • …pero con árboles AVL surgirá la necesidad de reequilibrar orden) los siguientes ▫ Rotaciones simples y dobles (una rotación puede desencadenar nodos (corrigiendo en otras) los posibles desequilibrios): 74, 50 72, 25, 40, 75, 99, 85, 50, 30 25 75 12 30 72 85 5 18 40 74 99
  • 33. 33Árboles binarios de búsqueda óptimos Árboles óptimos • Objetivo: Conseguir realizar búsquedas realizando menos pasos para acceder a los nodos que se visitan con más frecuencia • La estructura del árbol no suele modificarse ▫ Árboles de consulta ▫ Analizadores léxicos
  • 34. 34Árboles binarios de búsqueda óptimos Alternativas a la altura mínima • La idea es reducir al máximo la LM ponderada de todo el árbol 1 a a LmediaC.I . n *i i 1 i Lmedia _ ponderadaC.I . i 1 pi * i n Nodo Probabilidad A 0,30 * 1 A 0,30 B 0,20 (0,20 + 0,50)*2 B C C 0,50 LMPCI = 1,70 Ejercicio 14: En función de la tabla de la derecha que Nodo Probabilidad muestra las probabilidades de acceso a 3 nodos A, B y A 0,18 C, dibuja los dos mejores árboles y los dos peores (el B 0,35 mejor de todos es el óptimo) C 0,47
  • 35. 35Árboles desplegados Árboles desplegados (Splay) • Objetivo: Conseguir realizar búsquedas con complejidad O(1) gracias a que si se accede a un nodo es probable que se tenga acceso de nuevo a él en un plazo de tiempo breve • Hay que subir el nodo visitado hasta la raíz del árbol Ejercicio 15: Existen 2 técnicas básicas para subir el último nodo visitado hasta la raíz de un árbol de búsqueda (Zig-Zag y Zig-Zig). Explica brevemente en qué se basan
  • 36. 36
  • 37. 37Árboles binarios (de expresión) Ejemplo + 5 * Ejercicio 16: ¿En qué orden (preorden, inorden o postorden) habrá que recorrer 4 - el árbol para mostrar los operandos y los operadores del modo que estamos acostumbrados cuando realizamos operaciones 1 6 matemáticas? Recorre el árbol y muestra el resultado
  • 38. 38Árboles multicamino•Modelos más complejos con losbinarios•Reducen la altura del árbol•Indicados para memoria secundaria
  • 39. 39
  • 40. 40Árboles multicamino B Árboles multicamino B-2n • Objetivo: Crear árboles de búsqueda permitiendo reducir la altura de los árboles, puesto que un nodo puede tener más de 2 hijos • El árbol está organizado en páginas • Cada página tiene como máximo 2n elementos (n es el orden del árbol) • Cada página (excepto la raíz) contiene al menos n elementos • Cada página es: ▫ Una página hoja (no tiene descendientes) ▫ …o tiene m + 1 descendientes, siendo m el número de elementos • Todas las páginas hoja se encuentran al mismo nivel
  • 41. 41Árboles multicamino B Ejemplo árbol multicamino B-4 • Lo ideal es que los árboles tengan altura mínima 40 9 páginas 20 30 60, 70 10 12 14 16 21 22 23 24 35 38 46 50 51 61 66 68 71 78 88 ¿qué sucede si se comprime el árbol en un único nivel a base de insertar las claves de los descendientes entre las claves de su página antecesora?
  • 42. 42Árboles multicamino B Ejercicio 17: Construye un árbol B-4 para los siguientes Inserción nodos: 60 10 20 30 40 50 70 80 90 15 25 35 45 55 65 12 14 16 18 21 87 89 96 • Queremos introducir un nodo con clave 27
  • 43. 43Árboles multicamino B Borrado Ejercicio 18: Dibuja cómo irá evolucionando el árbol B-4 si se borran (en orden) los siguientes nodos (corrigiendo los posibles desequilibrios): 40, 10, 12, 14, 66, 71, 70, 60, 35, 21, 22, 24, 29, 20, 23, 30, 78, 61, 16, 27, 38, 50 A 40 B 20 23 30 C 60, 7010 12 14 16 21 22 24 27 29 35 38 46 50 51 61 66 68 71 78 88D E J F G H I
  • 44. 44Bibliografía • WEISS, Mark Allen; (2000) Data Estructures & Problem Solving Using Java. Addison Wesley. ISBN 03-2154-140-5. • JAIME SISA, Alberto; (2002) Estructuras de Datos y Algoritmos con énfasis en programación orientada a objetos. Pearson Educación. ISBN 958-699-044-3. • JOYANES AGUILAR, LUIS (2007) Estructuras de Datos en Java. McGraw Hill. ISBN: 9788448156312. • STANDISH, Thomas A (1998). Data structures in Java. Addison Wesley ISBN 0-201- 30564-X. • WEISS, Mark Allen; (2000) Estructuras de Datos en Java. Addison Wesley. ISBN 84- 7829-035-4. • WIRTH, Niklaus (1992). Algoritmos + Estructuras de Datos = Programas. Prentice- Hall. ISBN: 84-219-0172-9.