1 / 77

Asignatura: Estructura de Datos Avanzada Tema: rboles

Tema 3:

albert
Download Presentation

Asignatura: Estructura de Datos Avanzada Tema: rboles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    3. Tema 3: Árboles

    4. Bibliografía

    5. Objetivos Conozcan las estructuras de datos arbóreas y las formas de trabajar con ellas en la solución de problemas de mediana complejidad

    6. Introducción Estructuras de datos estudiadas: Listas lineales y sus variantes. Las relaciones entre los nodos de información son lineales. Todos los nodos tienen un único antecesor, excepto el primero que no tiene antecesor. Todos los nodos tienen un único sucesor, excepto el último que no tiene sucesor.

    7. Introducción ¿Qué estructura de datos se debe utilizar para representar estructuras jerárquicas o taxonómicas?

    8. Definición de Árbol Un árbol (tree) es un T.D.A. que consta de un conjunto finito T de nodos y una relación R (paternidad) entre los nodos tal que:

    9. Definición de Árbol Si n es un nodo y A1, A2, A3, A4, A5, …, Ak son árboles con raíces n1, n2, n3, n4,…, nk . Se puede construir un nuevo árbol haciendo que n se constituya en padre de los nodos n1, n2, n3, n4,…, nk. En dicho árbol, n es la raíz y A1, A2, A3, A4, A5, …, Ak son los subárboles de la raíz. Los nodos n1, n2, n3, n4,…, nk reciben el nombre de hijos del nodo n.

    10. Aclaraciones Si el conjunto finito T de nodos del árbol es vacío, entonces se trata de un árbol vacío. En esta estructura existe sólo un nodo sin padre, que es la raíz del árbol. Todo nodo, a excepción del nodo raíz, tiene uno y sólo un padre. Los subárboles de un nodo son llamados hijos.

    11. Ejemplos

    12. Aclaraciones Para todo nodo k, distinto de la raíz, existe una única secuencia de la forma: k0, k1, k2, k3, ..., kn, donde k0=raíz y kn=k Con n >= 1, donde. ki es el sucesor de ki-1, para 1 <= i <= n, o sea, cada nodo ki de la secuencia es la raíz de otro subárbol.

    13. Ejemplos

    14. Otras definiciones

    15. Ejemplos

    16. Otras definiciones

    17. Ejemplos

    18. Otras definiciones

    19. Ejemplos

    20. Otras definiciones

    21. Ejemplos

    22. Otras definiciones

    23. Ejemplos: Árbol genealógico de María (sin los hermanos)

    24. Otras definiciones

    25. Otras definiciones

    26. Ejemplos

    27. Definición de Árbol Binario

    28. Ejemplo

    29. Árbol Binario: Características

    30. Recorridos de un Árbol Binario

    31. Recorrido en Preorden

    32. Recorrido en Preorden

    33. Recorrido en Simétrico

    34. Recorrido en Simétrico

    35. Recorrido en Postorden

    36. Recorrido en Simétrico

    37. Árbol Binario: Implementación en C++

    38. Árbol: Implementación en C++

    39. Árboles de Búsqueda

    40. Árboles Lexicográficos

    41. Árboles Lexicográficos

    42. Árboles Lexicográficos: Ejemplo

    43. Problemas

    44. Árboles Hilvanados

    45. Árboles Hilvanados

    46. Árbol Hilvanado

    47. Árboles Hilvanados

    48. Construyendo Árboles Hilvanados

    49. Construyendo Árboles Hilvanados

    50. Construyendo Árboles Hilvanados

    51. Árbol Hilvanado: Implementación en C++

    52. Árboles Balanceados

    53. Árboles Balanceados

    54. Árboles AVL

    55. Árboles Generales ¿La estructura anterior se puede representar con un árbol binario?

    56. Árboles Generales Son árboles cuyo grado es mayor que dos.

    57. Árboles Generales

    58. Árboles Generales

    59. Transformación de General en Binario

    60. Transformación de General en Binario

    61. class TGBinTreeNode: public TBinTreeNode { public: TGBinTreeNode(void* pInfo): TBinTreeNode(pInfo) {} bool IsLeaf() {return !aLeft;} int Degree(); }; Árbol General: Implementación en C++

    62. int TGBinTreeNode::Degree() { int degree = 0; TBinTreeNode* cursor = Left(); while (cursor) { degree++; cursor = cursor->Right(); } return degree; } Árbol General: Implementación en C++

    63. class TGBinTree: public TBinTree { public: void* DeleteNode(TGBinTreeNode*); TGBinTreeNode* GetFather(TGBinTreeNode*); TGLinkedList* GetLeaves(); TGLinkedList* GetSons(TBinTreeNode*); bool InsertNode(TGBinTreeNode*, TGBinTreeNode*); }; Árbol General: Implementación en C++

    64. Colocación Secuencial de árboles

    65. Colocación Secuencial de Árboles

    66. Colocación en Preorden Secuencial

    67. Colocación en Preorden Secuencial

    68. Colocación en Preorden Secuencial

    69. Implementación en C++

    70. Colocación en Orden Familiar

    71. Colocación en Orden Familiar

    72. Colocación en Orden Familiar

    73. Implementación en C++

    74. Colocación en Postorden Secuencial

    75. Colocación en Postorden Secuencial

    76. Colocación en Postorden Secuencial

    77. Implementación en C++

More Related