Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porBernardo Marín Bustos Modificado hace 5 años
1
Árboles (Trees) Árboles Árboles binarios Recorridos de árboles
Estructuras de datos para árboles
2
Árboles Un árbol representa una jeraquía ejemplos:
estructura organizativa de una empresa tabla de contenido de un libro
3
Árboles (1) Sistema de ficheros de Unix o DOS/Windows
4
Árboles (2) Representación: Conjuntos anidados
Paréntesis anidados (A ( B (D ( I ), E, F (J, K ) ), C (G. H ( L ) ) ) ) Indentación Grafo Representación más usual: grafo
5
Árboles (3)
6
Ejemplo A es el nodo raíz B es el padre de D y E C es el hermano de B
D y E son los hijos de B D, E, F, G, I son nodos externos o hojas (No tienen hijos) B, C, H son nodos internos La profundidad (nivel) de E es 2 La altura del árbol es 3 El grado del nodo B es 2 (número de descendientes directos) El grado del árbol es 3 (máximo grado de todos los nodos) Propiedad: (#aristas) = (#nodos) - 1
7
Árboles binarios Árbol ordenado: el hijo de cada nodo está en un cierto orden Árbol binario: árbol ordenado con todos los nodos internos de grado 2 Definición recursiva de árbol binario: Un árbol binario es: - un nodo externo (hoja) o - un nodo interno (la raíz) y dos árboles binarios (subárbol izquierdo y subárbol derecho)
8
Ejemplos de Árboles Binarios
expresión aritmética río especial
9
Ejemplos de Árboles Binarios
Árboles de decisión
10
Árboles binarios distintos
Dos árboles binarios son distintos cuando sus estructuras son diferentes. Ej.
11
Árboles binarios similares
Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la información que contienen sus nodos difieren entre sí.
12
Árboles binarios equivalentes
Dos árboles binarios equivalentes se definen como aquellos que son similares y además los nodos contienen la misma información.
13
Árboles binarios completos
Se define un árbol binario completo como un árbol en el que todos sus nodos, excepto los de último nivel, tienen dos hijos; el subárbol izquierdo y el subárbol derecho
14
Recorrido de árboles (1)
recorrido preorder Algoritmo preOrder(v) “visitar” nodo v for each hijo w de v do realizar recursivamente preOrder(w) Ejm: lectura de un documento desde el inicio hasta el final
15
Recorrido de árboles (2)
recorrido postorder Algoritmo postOrder(v) for each hijo w de v do realizar recursivamente postOrder(w) “visitar” nodo v comando du (disk usage) de Unix
16
Evaluación de Expresiones Aritméticas
especialización de recorrido postorder Algoritmo evaluateExpression(v) if v es un nodo externo return la variable almacenada en v else asignar a o el operador almacenado en v x evaluateExpression(leftChild(v)) y evaluateExpression(rightChild(v)) return x o y
17
Recorrido de árboles (3)
recorrido inorder de un árbol binario Algoritmo inOrder(v) realizar recursivamente inOrder(leftChild(v)) “visitar” nodo v realizar recursivamente inOrder(rightChild(v)) impresión de una expresión aritmética especialización de un recorrido inorder print “(“ antes de recorrer el subárbol izquierdo print “)” antes de recorrer el subárbol derecho
18
Recorrido de árboles (4)
1 2 3 4 5 6 7 8 9 10 Inorden: Preorden: Postorden:
19
Recorrido de Euler en Arboles Binarios
Recorrido genérico de un árbol binario los recorridos preorder, inorder, y postorder son casos especiales del recorrido de Euler “caminar alrededor” del árbol y visitar cada nodo tres veces: a la izquierda desde abajo a la derecha
20
Representación de árboles binarios en memoria
21
Representación de árboles binarios en memoria
22
Estructura de Datos para Arboles Binarios mediante nodos enlazados
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.