1 / 39

Estructura de datos

Instituto Tecnológico de Culiacán. Ingeniería en Sistemas Computacionales. Estructura de datos. Material de apoyo Unidad 5. Prof. Felipe E. Muñiz R. TEMARIO. Unidad 5.- Estructuras no lineales. 5.1 Concepto de árbol. 5.1.1 Clasificación de árboles.

cai
Download Presentation

Estructura de datos

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


  1. Instituto Tecnológico de Culiacán Ingeniería en Sistemas Computacionales Estructura de datos Material de apoyo Unidad 5 Prof. Felipe E. Muñiz R.

  2. TEMARIO Unidad 5.- Estructuras no lineales. 5.1 Concepto de árbol. 5.1.1 Clasificación de árboles. 5.2 Operaciones Básicas sobre árboles binarios. 5.2.1 Creación. 5.2.2 Inserción. 5.2.3 Eliminación. 5.2.4 Recorridos sistemáticos. 5.2.5 Balanceo.

  3. Definición Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz, los cuales mantienen una relación (parentezco) que define una estructura jerárquica entre ellos.

  4. Concepto de árbol • Estructura Jerárquica no lineal, dinámica. • Relaciones padre-hijo entre nodos. • Ejemplos: sistema de archivos, estructura de un libro, diagrama organizacional, árboles genealógicos, etc.

  5. Concepto de árbol • Un árbol se caracteriza por estar formado por un conjunto finito de nodos, conectados por una serie de aristas, tales que verifican que: • hay un único nodo especial llamado raíz. • los nodos restantes se dividen en árboles mas pequeños llamados subárboles. • cada nodo, excepto la raíz, tiene un único nodo padre. • la definición de árbol implica tener una estructura recursiva (por la división en subárboles). • la representación de los árboles se realiza con notaciones típicas de los árboles genealógicos. • hay un único camino desde la raíz hasta cada nodo.

  6. Terminología básica • Raíz: único nodo sin padre. Ej.: nodo A • Nodo interno: tiene al menos un hijo. Ej.: nodos B, F, C • Nodo hoja (externo): nodo sin hijos. Ej.: nodos E, I, J, K, G, H, D • Descendiente directo: hijo. Ej.: B es descendiente directo de A • Descendiente: hijo, nieto, etc… Ej.: I es descendiente de F, B y A • Subárbol: árbol formado por un nodo y sus descendientes. Ej.: los nodos encerrados en el triangulo

  7. Terminología básica • Grado de un nodo: Num. de descendientes directos. Ej.: el nodo B es grado 2. • Grado de un árbol: el grado mayor de sus nodos. Ej.: el nodo A y F son los de mayor grado (3), por lo tanto el árbol es grado 3. • Árbol binario: árbol de grado 2, cada nodo tiene como mucho dos descendientes directos. • Árbol multicamino: árbol de grado mayor que 2, cada nodo puede tener n descendientes directos.

  8. Terminología básica • Profundidad de un nodo: Num. de predecesores. Ej.: profundidad de A es 0, profundidad de H es 2. • Altura del árbol: es igual a la profundidad de su nodo mas profundo + 1. Ej.: la profundidad de I, J y K que son los nodos mas profundos es 3 por lo tanto la altura de árbol es 3 + 1 = 4.

  9. Terminología básica • Camino: existe un camino del nodo X al nodo Y, si existe una sucesión de nodos que permita llegar desde X hasta Y, su longitud es el número de aristas que lo conforman. camino(A,K)= {A, B, F, K} longitud 3 camino(C,K)= {} no hay camino

  10. Recorrido Preorden • Se visita primero la raíz, luego el subárbol izquierdo y por ultimo el subárbol derecho, esto de manera recursiva para cada subárbol partiendo de la raíz. public static void preorden(NodoArbol R) { if (R!=null) { System.out.println(R.Descri); preorden(R.izq); preorden(R.der); } }

  11. Recorrido Inorden • Se visita primero el subárbol izquierdo, luego la raíz y por ultimo el subárbol derecho, esto de manera recursiva para cada subárbol partiendo de la raíz. public static void inorden(NodoArbol R) { if (R!=null) { inorden(R.izq); System.out.print(R.Descri + ", "); inorden(R.der); } }

  12. Recorrido Postorden • Se visita primero el subárbol izquierdo luego el subárbol derecho y por ultimo la raíz, esto de manera recursiva para cada subárbol partiendo de la raíz. public static void postorden(NodoArbol R) { if (R!=null) { postorden(R.izq); postorden(R.der); System.out.print(R.Descri + ", "); } }

  13. Ejemplo: expresiones aritméticas • nodos internos: operadores. • nodos hoja: operandos. 2(a – 1) + 3b

  14. Ejemplo:

  15. Implementación basada en enlaces

  16. Árboles Binarios de Búsqueda • Un árbol binario de búsqueda es un árbol binario en el que para cada nodo n, • todas las claves de los nodos del subárbol izquierdo son menores que la clave de n (o igual). • y todas las del subárbol derechomayores (o igual)

  17. Ejemplo:

  18. Ejemplo:

  19. En algunos casos se exige que el árbol sea completo, es decir que todo nodo interno tenga sus dos descendientes.

  20. Operaciones: • Búsqueda. • Inserción. • Eliminación

  21. Búsqueda

  22. Búsqueda

  23. Inserción

  24. Inserción

  25. Ejemplo de Inserción

  26. Ejemplo de Inserción

  27. Eliminación

  28. Algoritmo para borrar un nodo de un árbol binario de búsqueda. Para borrar un nodo con información X se presentan los siguientes casos. 1.- Que el nodo no exista: no se realiza ninguna acción. 2.- El nodo a eliminar tiene 0 o 1 hijo: El padre del nodo a eliminar (abuelo) toma como hijo al nodo nieto. 3.-El nodo a eliminar tiene 2 hijos: El nodo con la información X no se borra físicamente, se realiza una sustitución de información, (solo datos) con una de las siguientes acciones. a) La información mayor del subárbol izquierdo. b) La información menor del subárbol derecho. c) Después de la sustitución el valor que sustituyo al nodo X se manda a eliminar partiendo del subárbol donde se encuentra.

  29. Eliminación

  30. Eliminación

  31. Árbol binario: operaciones del TAD

  32. Árboles Equilibrados

  33. Árboles Equilibrados

  34. Árboles Equilibrados

  35. Árboles Equilibrados

  36. Árboles Equilibrados

  37. Árboles Equilibrados

More Related