Arboles (Trees) Arboles Arboles binarios Recorridos de árboles

Slides:



Advertisements
Presentaciones similares
IBD Plan 90 y 2003 Clase 10.
Advertisements

5. Estructuras no lineales estáticas y dinámicas
Cuestiones y problemas
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Razonamiento Cuantitativo
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Programación y Estructuras de Datos
Direcciones, Arreglos y Argumentos de Funciones
Operaciones sobre un árbol
Comité Nacional de Información Bogotá, Mayo 30 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Octubre 24 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE.
Comité Nacional de Información Bogotá, Julio 21 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Árboles binarios. Algoritmos básicos
Tema 4 Árboles. Árbol sobre matriz.
Tema 4 Árboles. Conceptos Generales..
ESTRUCTURAS DE DATOS AVANZADAS
ESTRUCTURAS DE SECUENCIA
Programación Orientada a Objetos en Java
Marzo 2007 Lenguajes Visuales Clase III.
Cont. Arbol Binario de Búsqueda
Árboles balanceados AVL
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
ÁRBOLES DE EXPRESION.
Programación I Teoría VI: Recursividad
Herencia e Interfaces.
Programación Orientada a Objetos usando C++
Medio de tele-comunicación
Definición Estructura de datos jerárquica (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí por medio de ramas. Formalmente,
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Diplomado en Informática Aplicada
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Estructura de Datos Lineales
Material de apoyo Unidad 4 Estructura de datos
Árboles.
Ordenamiento, Heapsort y Colas de prioridad
Estructura de Datos En C++
ARBOLES ESTRUCTURAS DE DATOS.
Estructura de Datos y Algoritmos
Árboles binarios de búsqueda
Arboles M.C. José Andrés Vázquez FCC/BUAP
ARBOLES ESTRUCTURAS DE DATOS.
Definición, propiedades, recorridos x a q yb w e vu fo.
Árboles.

Árboles Recomendado: 1. Nivelación Funciones
Árboles Binarios Estructuras de Datos.
Árboles de Búsqueda Binaria
Diccionarios El TDA diccionario Búsqueda binaria
Unidad 6: Árboles.
1 Árboles de Búsqueda Binaria Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Arboles B (búsqueda externa)
Punteros, referencias Listas enlazadas Arboles
Arboles M.C. José Andrés Vázquez FCC/BUAP
Algoritmos y estructura de datos en I.O.
ARBOLES GENERALIZADOS
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Binarios * Recorridos * Tipo
Algoritmos y estructura de datos en I.O. Arboles Generales.
ESTRUCTURA DE DATOS II Ing. Freddy Melgar Algarañaz Árboles Binarios *Recorridos *Tipo.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2016
Árboles (Trees) Árboles Árboles binarios Recorridos de árboles
Transcripción de la presentación:

Arboles (Trees) Arboles Arboles binarios Recorridos de árboles Patrón método template Estructuras de datos para árboles

Arboles un árbol representa una jeraquía ejemplos: estructura organizativa de una empresa tabla de contenido de un libro

Arboles (1) ` Sistema de ficheros de Unix o DOS/Windows

Arboles (2) Representación: Conjuntos anidados Paréntesis anidados Indentación Grafo Representación más usual: grafo

Terminología de Arboles A es el nodo raíz 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 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)

Ejemplos de Arboles Binarios expresión aritmética río especial

Ejemplos de Arboles Binarios Árboles de decisión

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 Arboles Métodos contenedor genéricos -size(), isEmpty(), elements() Métodos contenedor posicionales -positions(), swapElements(p,q), replaceElement(p,e) Métodos consulta -isRoot(p), isInternal(p), isExternal(p) Métodos acceso -root(), parent(p), children(p) Métodos actualización -específico de la aplicación

TDAs para Arboles Binarios Métodos acceso -leftChild(p), rightChild(p), sibling(p) métodos actualización -expandExternal(p), removeAboveExternal(p) -otros métodos específicos de la aplicación

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

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

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

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

Recorrido de árboles (4) 1 2 3 4 5 6 7 8 9 10 Inorden: 8 4 9 2 10 5 1 6 3 7 Preorden: 1 2 4 8 9 5 10 3 6 7 Postorden: 8 9 4 10 5 2 6 7 3 1

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

Patrón método Template Mecanismo de cómputo genérico que puede ser especializado redefiniendo ciertos pasos. implementado por medio de una clase abstracta de Java con métodos que pueder ser redifinidos por sus subclases

Especializando el Recorrido Genérico para Arbol Binario Imprimiendo una expresión aritmética public 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) { protected void right(Position p, TraversalResult r) { System.out.print(")");

Estructura de Datos para Arboles Binarios mediante nodos enlazados

Representación de Arboles Generales árbol T Arbol binario T' representa T