tema7_arboles (1).ppt
TRANSCRIPT
-
Arboles (Trees)ArbolesArboles binariosRecorridos de rbolesPatrn mtodo templateEstructuras de datos para rboles
-
Arboles un rbol representa una jeraqua ejemplos: estructura organizativa de una empresatabla de contenido de un libro
-
Arboles (1)`Sistema de ficheros de Unix o DOS/Windows
-
Arboles (2)Representacin: Conjuntos anidados Parntesis anidados Indentacin Grafo
Representacin ms usual: grafo
-
Terminologa de Arboles A es el nodo raz B es el padre de D y E C es el primo de B D y E son los hijos de B D, E, F, G, I son nodos externos o hojas A, 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
Propiedad: (#aristas) = (#nodos) - 1
-
Arboles binarios Arbol ordenado: el hijo de cada nodo est ordenado Arbol binario: rbol ordenado con todos los nodos internos de grado 2 Definicin recursiva de rbol binario: Un rbol binario es: - un nodo externo (hoja) o - un nodo interno (la raz) y dos rboles binarios (subrbol izquierdo y subrbol derecho)
-
Ejemplos de Arboles Binarios expresin aritmtica ro especial
-
Ejemplos de Arboles Binariosrboles de decisin
-
Propiedades de Arboles Binarios (# nodos externos) = (# nodos internos) + 1 (# nodos nivel i) 2 i (# nodos externos) 2 altura (altura) log2 (# nodos externos) (altura) log2 (# nodos) - 1 (altura) (# nodos internos) - ((# nodos) - 1)/2
-
TDAs para ArbolesMtodos contenedor genricos -size(), isEmpty(), elements()Mtodos contenedor posicionales -positions(), swapElements(p,q), replaceElement(p,e)Mtodos consulta -isRoot(p), isInternal(p), isExternal(p)Mtodos acceso -root(), parent(p), children(p)Mtodos actualizacin -especfico de la aplicacin
-
TDAs para Arboles BinariosMtodos acceso -leftChild(p), rightChild(p), sibling(p)mtodos actualizacin -expandExternal(p), removeAboveExternal(p) -otros mtodos especficos de la aplicacin
-
Recorrido de rboles (1)recorrido preorderAlgoritmo preOrder(v)visitar nodo vfor each hijo w de v do realizar recursivamente preOrder(w)Ejm: lectura de un documento desde el inicio hasta el final
-
Recorrido de rboles (2)recorrido postorderAlgoritmo postOrder(v)for each hijo w de v do realizar recursivamente postOrder(w)visitar nodo vcomando du (disk usage) de Unix
-
Evaluacin de Expresiones Aritmticasespecializacin de recorrido postorder
Algoritmo evaluateExpression(v)if v es un nodo externoreturn la variable almacenada en velseasignar a o el operador almacenado en vx evaluateExpression(leftChild(v))y evaluateExpression(rightChild(v))return x o y
-
Recorrido de rboles (3)recorrido inorder de un rbol binarioAlgoritmo inOrder(v) realizar recursivamente inOrder(leftChild(v))visitar nodo v realizar recursivamente inOrder(rightChild(v))
impresin de una expresin aritmticaespecializacin de un recorrido inorderprint ( antes de recorrer el subrbol izquierdoprint ) antes de recorrer el subrbol derecho
-
Recorrido de rboles (4)Inorden: 8 4 9 2 10 5 1 6 3 7Preorden: 1 2 4 8 9 5 10 3 6 7Postorden: 8 9 4 10 5 2 6 7 3 1
-
Recorrido de Euler en Arboles BinariosRecorrido genrico de un rbol binariolos recorridos preorder, inorder, y postorder son casos especiales del recorrido de Eulercaminar alrededor del rbol y visitar cada nodo tres veces:a la izquierdadesde abajoa la derecha
-
Patrn mtodo TemplateMecanismo de cmputo genrico que puede ser especializado redefiniendo ciertos pasos.implementado por medio de una clase abstracta de Java con mtodos que pueder ser redifinidos por sus subclases
-
Especializando el Recorrido Genrico para Arbol BinarioImprimiendo una expresin aritmticapublic class PrintExpressionTraversal extends BinaryTreeTraversal {...protected void external(Position p, TraversalResult r) { System.out.print(p.element()); } protected void left(Position p, TraversalResult r) { System.out.print("("); }protected void below(Position p, TraversalResult r) { System.out.print(p.element()); }protected void right(Position p, TraversalResult r) { System.out.print(")"); }
-
Estructura de Datos para Arboles Binarios mediante nodos enlazados
-
Representacin de Arboles Generalesrbol TArbol binario T' representa T