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

Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)agustinbilmer
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Grafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosGrafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosAron Boza
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalAngel Vázquez Patiño
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
HASH Organizacion de Archivos en Bases de Datos
HASH Organizacion de Archivos en Bases de DatosHASH Organizacion de Archivos en Bases de Datos
HASH Organizacion de Archivos en Bases de DatosAngel Feijo
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalomorenito9001
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)Franklin Parrales Bravo
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 

La actualidad más candente (20)

Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Colas
ColasColas
Colas
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Grafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosGrafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianos
 
Listas
ListasListas
Listas
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de Kruskal
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
HASH Organizacion de Archivos en Bases de Datos
HASH Organizacion de Archivos en Bases de DatosHASH Organizacion de Archivos en Bases de Datos
HASH Organizacion de Archivos en Bases de Datos
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalo
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 

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 (7)

áRboles
áRbolesáRboles
áRboles
 
áRboles
áRbolesáRboles
áRboles
 
Arboles
ArbolesArboles
Arboles
 
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.