SlideShare una empresa de Scribd logo
1 de 44
Árboles


Estructuras de Datos

         Vicente García Díaz – garciavicente@uniovi.es
                           Universidad de Oviedo, 2011
2


Tabla de contenidos
1. Conceptos básicos
2. Á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ón
3. Árboles multicamino
  1. Árboles B
4. Bibliografía
3




Conceptos básicos
4

Conceptos básicos

    Árboles                    A
Nodos 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

Conceptos 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

Conceptos 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        G

Ejercicio 2: ¿Cuál es la longitud media del camino interno del árbol           I
mostrado?
7




Árboles binarios
•Competiciones deportivas
•Árboles genealógicos
•Operaciones binarias
•…
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

Á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

Á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

Á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

Á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

Á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

Á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

Á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

Á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
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

Á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
                                                        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

Á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

Á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

Á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

Á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

Á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

Á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

Á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 AVL




1)               2)                        3)               4)
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

Á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

Á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

Á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

Á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

Á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

Á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

Á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
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




Árboles multicamino
•Modelos más complejos con los
binarios
•Reducen la altura del árbol
•Indicados para memoria secundaria
39
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

Á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

Á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

Á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, 70


10 12 14 16           21 22          24 27 29       35 38       46 50 51       61 66 68       71 78 88
D                 E              J              F           G              H              I
44


Bibliografí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.

Más contenido relacionado

La actualidad más candente

Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosAngela Janeth Jimenez
 
Problemas resueltos Electrónica digital
Problemas resueltos Electrónica digitalProblemas resueltos Electrónica digital
Problemas resueltos Electrónica digitalCarlos Cardelo
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
Ejercicios resueltos grafos
Ejercicios resueltos grafosEjercicios resueltos grafos
Ejercicios resueltos grafosTERE FERNÁNDEZ
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srtCarlos Solano
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Nabor Chirinos
 

La actualidad más candente (20)

Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Arboles
ArbolesArboles
Arboles
 
Tema grafos
Tema grafosTema grafos
Tema grafos
 
Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de Grafos
 
Problemas resueltos Electrónica digital
Problemas resueltos Electrónica digitalProblemas resueltos Electrónica digital
Problemas resueltos Electrónica digital
 
Grafos
GrafosGrafos
Grafos
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Arboles v2
Arboles v2Arboles v2
Arboles v2
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Codigos binarios
Codigos binariosCodigos binarios
Codigos binarios
 
Ejercicios resueltos grafos
Ejercicios resueltos grafosEjercicios resueltos grafos
Ejercicios resueltos grafos
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 

Destacado

Arboles binarios
Arboles binariosArboles binarios
Arboles binariosfavi_hola
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Stalin Eduardo Tusa Vitar
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) brayan0015
 
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICASEjercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICASxaviercamposm
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarioselcapo2008
 
Top 10 Advantages to Using CAD-CAM Software for CNC Machining
Top 10 Advantages to Using CAD-CAM Software for CNC MachiningTop 10 Advantages to Using CAD-CAM Software for CNC Machining
Top 10 Advantages to Using CAD-CAM Software for CNC MachiningBobCAD-CAM, Inc.
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 

Destacado (8)

Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles)
 
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICASEjercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
 
Top 10 Advantages to Using CAD-CAM Software for CNC Machining
Top 10 Advantages to Using CAD-CAM Software for CNC MachiningTop 10 Advantages to Using CAD-CAM Software for CNC Machining
Top 10 Advantages to Using CAD-CAM Software for CNC Machining
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 

Similar a Árboles (6)

áRboles
áRbolesáRboles
áRboles
 
áRboles
áRbolesáRboles
áRboles
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 

Más de Vicente García Díaz (16)

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
 
jBPM
jBPMjBPM
jBPM
 
Wikitude. KML y ARML
Wikitude. KML y ARMLWikitude. KML y ARML
Wikitude. KML y ARML
 
Wikitude. ARchiect
Wikitude. ARchiectWikitude. ARchiect
Wikitude. ARchiect
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelos
 
Iniciación a OpenGL
Iniciación a OpenGLIniciación a OpenGL
Iniciación a OpenGL
 
Iniciación a la realidad aumentada
Iniciación a la realidad aumentadaIniciación a la realidad aumentada
Iniciación a la realidad aumentada
 
Iniciación a ARToolKit
Iniciación a ARToolKitIniciación a ARToolKit
Iniciación a ARToolKit
 
Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
 
Wikitude. Servicios Seb
Wikitude. Servicios SebWikitude. Servicios Seb
Wikitude. Servicios Seb
 
LaTeX
LaTeXLaTeX
LaTeX
 
Automatización y Microsoft Word
Automatización y Microsoft WordAutomatización y Microsoft Word
Automatización y Microsoft Word
 
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
 
Grafos
GrafosGrafos
Grafos
 

Árboles

  • 1. Árboles Estructuras de Datos Vicente García Díaz – garciavicente@uniovi.es Universidad de Oviedo, 2011
  • 2. 2 Tabla de contenidos 1. Conceptos básicos 2. Á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ón 3. Árboles multicamino 1. Árboles B 4. Bibliografía
  • 4. 4 Conceptos básicos Árboles A Nodos 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. 5 Conceptos 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. 6 Conceptos 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 G Ejercicio 2: ¿Cuál es la longitud media del camino interno del árbol I mostrado?
  • 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 AVL 1) 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 los binarios •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, 70 10 12 14 16 21 22 24 27 29 35 38 46 50 51 61 66 68 71 78 88 D E J F G H I
  • 44. 44 Bibliografí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.