TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica"

Transcripción

1 TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y continuaremos con definiciones de varios tipos de árboles y sus aplicaciones. Para cada tipo de árbol presentaremos su especificación e implementación, así como los principales algoritmos de manipulación. Contenidos 1. Introducción 2. Terminología fundamental 2.1. Recorridos de un árbol 3. Árboles binarios 3.1. Definición 3.2. Especificación 3.3. Implementación 4. Árboles binarios de búsqueda 4.1. Definición 4.2. Especificación 4.3. Implementación 5. Árboles binarios equilibrados 5.1. Árboles AVL 6. Árboles generales 6.1. Especificación 6.2. Implementación Bibliografía Básica Lewis J. y Chase J.; Estructuras de datos con Java. Diseño de estructuras y algoritmos. Departamento de informática 1 Reyes Pavón

2 Segunda Edición. Pearson Addisson Wesley Pags , Weiss, Mark Allen; Estructuras de datos en Java: compatible con JAVA 2, Addisson Wesley Págs , , , , , Rowe, Glen; An Introduction to Data Structures and Algorithms with Java, Prentice Hall,1998. Págs Complementaria Lewis, J. y Chase J. Estructuras de datos con Java. Diseño de estructuras y algoritmos. 2ª ed. Pearson. Addisson Wesley Págs , , Goodrich M. y Tamassia R., Data structures and Algorithms in JAVA 4ª ed. John Wiley & Sons Inc., 2006 Págs , , , , Weiss, Mark Allen, Estructuras de datos en Java: compatible con JAVA 2, Addisson Wesley Págs , Departamento de informática 2 Reyes Pavón

3 Tema 3. Árboles 1. Introducción Árbol: estructura no lineal y dinámica de datos más importante en computación Dinámica: puede cambiar durante la ejecución de un programa No lineal: a cada elemento del árbol pueden seguirle varios elementos 2. Terminología fundamental Árbol: estructura jerárquica de una colección de objetos Colección de elementos llamados nodos, uno de los cuales se distingue como raíz, Una relación (de "paternidad") que impone una estructura jerárquica sobre los nodos Ejs. de árboles: árboles genealógicos, organigramas Formalmente, un árbol se puede definir de manera recursiva como: Una forma particular de árbol es el árbol nulo o vacío, que es un árbol sin nodos Un solo nodo es, por sí mismo, un árbol Ese nodo es también la raíz de dicho árbol Departamento de informática 3 Reyes Pavón

4 Supóngase que n es un nodo y que A 1, A 2,.., A K son árboles con raíces n 1, n 2,.., n K, respectivamente. Se puede construir un nuevo árbol haciendo que n se constituya en el padre de los nodos n 1, n 2,.., n K n es la raíz y A 1, A 2,.., A K son los subárboles (o árboles hijos) de la raíz Los nodos n 1, n 2,.., n K reciben el nombre de hijos del nodo n y el nodo n recibe el nombre de padre de dichos nodos Gráficamente la estructura árbol se suele representar mediante un grafo jerárquico A B C D E F G H I J K Hermanos: nodos hijos del mismo padre Ej: B,C,D y E son hermanos Camino del nodo n 1 al nodo n K : sucesión de nodos de un árbol n 1, n 2,.., n K, tal que n i es el padre de n i+1, i = 1, 2,.., K-1 Ej: A, E, J, K es un camino Longitud de un camino: número de nodos del camino menos 1. Caminos de longitud cero: aquellos que van de cualquier nodo a él mismo Ej: el camino A, E, J, K tiene longitud 3 Si existe un camino de un nodo n a otro m, entonces n es un antecesor de m, y m es un descendiente de n En un árbol, la raíz es el único nodo que no tiene antecesores Departamento de informática 4 Reyes Pavón

5 Hoja o nodo terminal: nodo sin descendientes Subárbol de un árbol: nodo junto con todos sus descendientes Grado de un nodo: número de subárboles que tiene. Los nodos terminales u hojas tienen grado 0 Ej: el grado de A es 4. Altura de un nodo: longitud del camino más largo de ese nodo a una hoja. La altura del árbol es la altura de la raíz Ej: B tiene altura 1, E altura 2 y H altura 0. La altura del árbol es 3 Nivel o profundidad de un nodo: longitud del único camino desde la raíz a ese nodo. Por definición, la raíz tiene nivel 0. La profundidad de un árbol se define como el máximo de los niveles de los nodos del árbol Ej: B tiene nivel 1, H nivel 2. La profundidad del árbol es 3 Departamento de informática 5 Reyes Pavón

6 2.1. Recorridos de un árbol Estrategias para recorrer un árbol y procesar sus nodos: Recorridos en profundidad Recorridos en anchura Recorridos en profundidad Tres formas de recorrer un árbol en profundidad: Preorden u orden previo Inorden u orden simétrico Postorden u orden posterior Definición recursiva: Si el árbol A es nulo la lista vacía es el listado de los nodos del árbol A en los órdenes preorden, inorden y postorden Si el árbol A tiene un solo nodo ese nodo constituye el listado del árbol A en los tres órdenes Si el árbol A tiene más de un nodo, es decir, tiene como raíz el nodo n y los subárboles A 1, A 2,.., A K : A A 1 A 2 A k Departamento de informática 6 Reyes Pavón

7 Listado en preorden de A: raíz del árbol A, seguida de los nodos del árbol A 1 en preorden, luego por los nodos de A 2 en preorden y así sucesivamente hasta los nodos de A K en preorden Ej: A, B, F, G, C, D, H, E, I, J, K Listado en inorden de A: nodos del árbol A 1 en inorden, seguidos de la raíz n y luego por los nodos de A 2,.., A K en inorden Ej: F, B, G, A, C, H, D, I, E, K, J Listado en postorden de A: nodos del árbol A 1 en postorden, luego los nodos de A 2 en postorden y así sucesivamente hasta los nodos de A K en postorden y por último la raíz n Ej: F, G, B, C, H, D, I, K, J, E, A Recorrido en anchura Exploración del árbol por niveles, listando los nodos de izquierda a derecha y empezando por el nivel 0, luego el nivel 1,... Ej: A, B, C, D, E, F, G, H, I, J, K 3. Árboles binarios 3.1. Definición Árbol binario: un árbol donde cada nodo tiene como máximo grado 2 un árbol binario es Un árbol vacío, o Un árbol en que sus nodos tienen un hijo izquierdo y un hijo derecho. Cada uno de estos hijos es a su vez un árbol binario Departamento de informática 7 Reyes Pavón

8 Se distinguen los hijos de un nodo como izquierdo y derecho Ej: árboles binarios distintos Recorridos: Preorden: raíz, recorrido en preorden del subárbol izquierdo y recorrido en preorden del subárbol derecho Ejs: 1, 2, 3, 5, 4 (coincide en los dos árboles) Postorden: recorrido en postorden del subárbol izquierdo, recorrido en postorden del subárbol derecho y raíz Ejs: 5, 3, 4, 2, 1 (coincide en los dos árboles) Inorden: recorrido en inorden del subárbol izquierdo, raíz y recorrido en inorden del subárbol derecho Ejs: 3, 5, 2, 4, 1 1, 5, 3, 2, 4 Anchura: recorrido por niveles Ejs: 1, 2, 3, 4, 5 (coincide en los dos árboles) 3.2. Especificación Especificación cuasi-formal del TAD Árbol binario Departamento de informática 8 Reyes Pavón

9 public class ArbolBinario<E> // Declaración de tipos: ArbolBinario // Características: // Un árbol binario es un árbol vacío o un nodo con dos hijos (izquierdo // y derecho) que a su vez son árboles binarios // Los objetos son modificables // Constructores public ArbolBinario(); // Produce: Un árbol vacío public ArbolBinario(E elemraiz, ArbolBinario<E> hi, ArbolBinario<E> hd) throws NullPointerException; // Produce: Si hi o hd son null, lanza la excepción // NullPointerException. // En caso contrario, construye un árbol de raíz elemraiz, // hijo izquierdo hi e hijo derecho hd // Métodos public boolean esvacio(); // Produce: Cierto si this está vacío. Falso en caso contrario. public E raiz() throws ArbolVacioExcepcion; // Produce: Si this está vacío lanza la excepción // ArbolVacioExcepcion, // sino devuelve el objeto almacenado en la raíz public ArbolBinario<E> hijoizq() throws ArbolVacioExcepcion; // Produce: Si this está vacío lanza la excepción // ArbolVacioExcepcion, // sino devuelve el subárbol izquierdo public ArbolBinario<E> hijoder() throws ArbolVacioExcepcion; // Produce: Si this está vacío lanza la excepción // ArbolVacioExcepcion, // sino devuelve el subárbol derecho public boolean esta (E elemento); // Produce: Cierto si elemento está en this, // falso, en caso contrario public void setraiz(e elemraiz) throws ArbolVacioExcepcion; // Modifica: this // Produce: Si this está vacío lanza la excepción // ArbolVacioExcepcion, // sino asigna el objeto elemraíz a la raíz del árbol this public void sethijoizq(arbolbinario<e> hi) throws ArbolVacioExcepcion, NullPointerException; // Modifica: this Departamento de informática 9 Reyes Pavón

10 // Produce: Si hi es null, lanza la excepción NullPointerException. // En caso contrario, si this está vacío lanza la excepción // ArbolVacioExcepcion, // sino asigna el árbol hi como subárbol izquierdo de this public void sethijoder(arbolbinario<e> hd) throws ArbolVacioExcepcion, NullPointerException; // Modifica: this // Produce: Si hd es null, lanza la excepción NullPointerException. // En caso contrario, si this está vacío lanza la excepción // ArbolVacioExcepcion, // sino asigna el árbol hd como subárbol derecho de this public void suprimir (); // Modifica: this // Produce: El árbol binario vacío Ejemplo de uso del TAD Árbol binario public static <E> void preorden(arbolbinario<e> a) if (!a.esvacio()) System.out.print(a.raiz() + " "); preorden(a.hijoizq()); preorden(a.hijoder()); public static <E> void anchura(arbolbinario<e> a) Cola<ArbolBinario<E>> c = new EnlazadaCola<E>(); c.insertar(a); do a = c.suprimir(); if (!a.esvacio()) System.out.print(a.raiz() + " "); c.insertar(a.hijoizq()); c.insertar(a.hijoder()); while (!c.esvacio()); Departamento de informática 10 Reyes Pavón

11 3.3. Implementación Definición de una interfaz que describa los nombres de los métodos que soporta el TAD y cómo tienen que ser declarados y usados public interface ArbolBinario<E> public boolean esvacio(); public E raiz() throws ArbolVacioExcepcion; public ArbolBinario<E> hijoizq() throws ArbolVacioExcepcion ; public ArbolBinario<E> hijoder() throws ArbolVacioExcepcion; public boolean esta (E elemento); public void setraiz(e elemraiz) throws ArbolVacioExcepcion; public void sethijoizq(arbolbinario<e> hi) throws ArbolVacioExcepcion, NullPointerException; public void sethijoder(arbolbinario<e> hd) throws ArbolVacioExcepcion, NullPointerException; public void suprimir(); Para poder realizar una implementación mediante nodos enlazados es necesario definir una clase NodoBinario<E> public class NodoBinario<E> private E elemento; // referencia al elemento del nodo private NodoBinario<E> izq; // referencia al nodo izquierdo private NodoBinario<E> der; // referencia al nodo derecho public NodoBinario(E e, NodoBinario<E> hi, NodoBinario<E> hd) // Produce: Un nodo con valores e, hi y hd en sus atributos // elemento, izq y der, respectivamente elemento = e; izq = hi; der = hd; // métodos public E getelemento() // Produce: Devuelve el atributo elemento de this return elemento; public NodoBinario<E> getizq() // Produce: Devuelve el atributo izq de this return izq; Departamento de informática 11 Reyes Pavón

12 public NodoBinario<E> getder() // Produce: Devuelve el atributo der de this return der; public void setelemento(e e) // Modifica: this // Produce: Modifica el atributo elemento de this elemento = e; public void setizq(nodobinario<e> hi) // Modifica: this // Produce: Modifica el atributo izq de this izq = hi; public void setder(nodobinario<e> hd) // Modifica: this // Produce: Modifica el atributo der de this der = hd; Implementación de la interfaz ArbolBinario<E> usando la clase NodoBinario<E> public class EnlazadoArbolBinario<E> implements ArbolBinario<E> private NodoBinario<E> nodoraiz; // constructores public EnlazadoArbolBinario() nodoraiz = null; public EnlazadoArbolBinario(E elemraiz, ArbolBinario<E> hi, ArbolBinario<E> hd) throws NullPointerException if (hi==null hd ==null) throw new NullPointerException(); nodoraiz = new NodoBinario<E>(elemRaiz, ((EnlazadoArbolBinario<E>) hi).nodoraiz, ((EnlazadoArbolBinario<E>) hd).r); Departamento de informática 12 Reyes Pavón

13 private EnlazadoArbolBinario<E>(NodoBinario<E> raiz) nodoraiz = raiz; // métodos public boolean esvacio() return nodoraiz == null; public E raiz() throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("raiz: Árbol vacío"); return nodoraiz.getelemento(); public ArbolBinario<E> hijoizq() throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("hijoIzq: Árbol vacío"); return new EnlazadoArbolBinario<E>(nodoRaiz.getIzq()); public ArbolBinario<E> hijoder() throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("hijoDer: Árbol vacío"); return new EnlazadoArbolBinario<E>(nodoRaiz.getDer()); public boolean esta(e elemento) return esta(nodoraiz,elemento); private boolean esta(nodobinario<e> raiz, E elemento) if (raiz==null) return false; if (raiz.getelemento().equals(elemento)) return true; boolean temp = esta(raiz.getizq(),elemento); if (!temp) return esta(raiz.getder(),elemento); return temp; Departamento de informática 13 Reyes Pavón

14 public void setraiz(e elemraiz) throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("raiz: Árbol vacío"); nodoraiz.setelemento(elemraiz); public void sethijoizq(arbolbinario<e> hi) throws ArbolVacioExcepcion, NullPointerException if (hi==null) throw new NullPointerException(); if (esvacio()) throw new ArbolVacioExcepcion("setHijoIzq: Árbol vacío"); nodoraiz.setizq(((enlazadoarbolbinario<e>) hi).nodoraiz); public void sethijoder(arbolbinario<e> hd) throws ArbolVacioExcepcion, NullPointerException if (hd==null) throw new NullPointerException(); if (esvacio()) throw new ArbolVacioExcepcion("setHijoIzq: Árbol vacío"); nodoraiz.setder(((enlazadoarbolbinario<e>) hd).nodoraiz); public void suprimir() nodoraiz = null; 4. Árboles binarios de búsqueda 4.1. Definición Estructura de datos básica para almacenar elementos que están clasificados siguiendo algún orden lineal Propiedades: Para todo nodo A del árbol, Todos los valores de los nodos del subárbol izquierdo de A deben ser menores al valor del nodo A, y Departamento de informática 14 Reyes Pavón

15 Todos los valores de los nodos del subárbol derecho de A deben ser mayores o iguales al valor del nodo A Un recorrido en inorden del árbol proporciona una lista en orden ascendente de los valores almacenados en los nodos Operaciones: Búsqueda: determinar si x está en el árbol Si x = r localizado Si x < r buscar en el subárbol izquierdo Si x r buscar en el subárbol derecho Proceso análogo a una búsqueda binaria en un array Inserción: añadir un nuevo elemento x al árbol 1. Avanzar en el árbol comparando x con r 2. Repetir el paso 1 hasta que el subárbol donde deba insertarse sea el árbol vacío 3. Insertar el elemento Eliminación: borrar un elemento x del árbol 1. Si x es hoja se suprime x 2. Si el elemento a borrar tiene un solo descendiente se sustituye por ese descendiente 3. Si el elemento a borrar tiene los dos descendientes se sustituye por el menor elemento del subárbol derecho. Después se elimina el nodo correspondiente a dicho elemento 4.2. Especificación Especificación cuasi-formal public class ArbolBusqueda<E> // Declaración de tipos: ArbolBusqueda // Características: // Es un árbol binario donde para cada nodo se cumple la propiedad de // que todos los nodos con clave menor que la suya están en su Departamento de informática 15 Reyes Pavón

16 // subárbol izquierdo y todos los nodos con clave mayor o igual se // encuentran en el subárbol derecho. // Los objetos son modificables // Constructores public ArbolBusqueda(); // Produce: Un árbol vacío // Métodos public boolean esvacio(); // Produce: Cierto si el árbol está vacío. Falso en caso contrario. public E raiz() throws ArbolVacioExcepcion; // Produce: Si el árbol está vacío lanza la excepción // ArbolVacioExcepcion, // sino devuelve el objeto almacenado en la raíz public ArbolBusqueda<E> hijoizq() throws ArbolVacioExcepcion; // Produce: Si el árbol está vacío lanza la excepción // ArbolVacioExcepcion, // sino devuelve el subárbol izquierdo public ArbolBusqueda<E> hijoder() throws ArbolVacioExcepcion; // Produce: Si el árbol está vacío lanza la excepción // ArbolVacioExcepcion, // sino devuelve el subárbol derecho public void insertar(e o); // Modifica: this // Produce: Añade el objeto o a this public void eliminar(e o) throws ElementoIncorrecto; // Modifica: this // Produce: Si o no existe en el árbol, lanza la excepción // ElementoIncorrecto // sino elimina el objeto de this. public boolean buscar(e o) ; // Produce: Devuelve cierto si el objeto está en el árbol // y falso en otro caso 4.3. Implementación Cómo comparar los elementos de los nodos? Solución: los elementos deben ser instancias de una clase que implemente la interface Comparable<E> existente en java. Departamento de informática 16 Reyes Pavón

17 public interface Comparable<E> public int compareto(e e); Interfaz Java para el TAD Árbol Binario de Búsqueda public interface ArbolBusqueda <E extends Comparable<E>> public boolean esvacio(); public E raiz() throws ArbolVacioExcepcion; public ArbolBusqueda<E> hijoizq() throws ArbolVacioExcepcion; public ArbolBusqueda<E> hijoder() throws ArbolVacioExcepcion; public void insertar(e elemento); public void eliminar(e elemento) throws ElementoIncorrecto; public boolean buscar(e elemento); Escribir una clase concreta que implementa los métodos de la interfaz asociada con el TAD. Dicha clase hace uso de la clase NodoBinario<E>, definida anteriormente, que contiene una referencia a cada uno de los hijos del nodo además de una referencia al elemento que contiene. public class ArbolBinarioBusqueda<E extends Comparable<E>> implements ArbolBusqueda<E> private NodoBinario<E> raiz; public ArbolBinarioBusqueda() raiz=null; private ArbolBinarioBusqueda(NodoBinario<E> r) raiz=r; public boolean esvacio() return raiz==null; public E raiz() throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("raiz: Árbol vacío"); return raiz.getelemento(); public ArbolBusqueda<E> hijoizq() throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("hijoIzq: Árbol vacío"); return new ArbolBinarioBusqueda<E>(raiz.getIzq()); Departamento de informática 17 Reyes Pavón

18 public ArbolBusqueda<E> hijoder() throws ArbolVacioExcepcion if (esvacio()) throw new ArbolVacioExcepcion("hijoDer: Árbol vacío"); return new ArbolBinarioBusqueda<E>(raiz.getDer()); public void insertar(e elemento) raiz=insertar(raiz, elemento); protected NodoBinario<E> insertar(nodobinario<e> r, E elemento) if(r==null) return new NodoBinario<E>(elemento,null,null); else if (elemento.compareto(r.getelemento())<0) r.setizq(insertar(r.getizq(),elemento)); else r.setder(insertar(r.getder(),elemento)); return r; public void eliminar(e elemento) throws ElementoIncorrecto raiz=eliminar(raiz, elemento); protected NodoBinario<E> eliminar (NodoBinario<E> r, E elemento) throws ElementoIncorrecto if (r==null) throw new ElementoIncorrecto("eliminar: elemento no existe"); else if (elemento.compareto(r.getelemento())<0) r.setizq(eliminar(r.getizq(),elemento)); else if (elemento.compareto(r.getelemento())>0) r.setder(eliminar(r.getder(),elemento)); else if (r.getizq()!=null && r.getder()!=null) r.setelemento(getmasizq(r.getder())); r.setder(eliminarmasizq(r.getder())); else return(r.getizq()!=null)?r.getizq():r.getder(); return r; protected E getmasizq(nodobinario<e> r) while (r.getizq()!=null) r=r.getizq(); return r.getelemento(); protected NodoBinario<E> eliminarmasizq(nodobinario<e> r) if (r.getizq()==null) return r.getder(); else r.setizq(eliminarmasizq(r.getizq())); return r; Departamento de informática 18 Reyes Pavón

19 public boolean buscar(e elemento) return buscar(raiz, elemento); protected boolean buscar (NodoBinario<E> r, E elemento) if (r==null) return false; else if (elemento.compareto(r.getelemento())==0) return true; else if (elemento.compareto(r.getelemento())<0) return buscar(r.getizq(),elemento); else return buscar(r.getder(),elemento); Los métodos buscar, insertar y eliminar llaman a un método protected que recibe como parámetro la raíz del árbol y una referencia al elemento. Los métodos que desde un punto de vista lógico son privados, tienen como atributo de visibilidad protected, en lugar de private. Esto es debido a que se usarán posteriormente en una clase derivada de ArbolBinarioBusqueda. Los métodos getmasizq y eliminarmasizq se usan cuando se elimina un nodo del árbol binario de búsqueda que tiene dos descendientes. Para simplificar el código se emplea recursión, pero sería posible una implementación no recursiva. Departamento de informática 19 Reyes Pavón

Estructuras de datos y algoritmos

Estructuras de datos y algoritmos Estructuras de datos y algoritmos 1. Introducción 2. Estructuras de datos lineales 3. Estructuras de datos jerárquicas 4. Grafos y caminos 5. Implementación de listas, colas, y pilas 6. Implementación

Más detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010 Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del

Más detalles

Estructuras de Datos Clase 14 Árboles binarios de búsqueda

Estructuras de Datos Clase 14 Árboles binarios de búsqueda Estructuras de Datos Clase 14 Árboles binarios de búsqueda Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios Temario 5.1 Árboles Binarios 5.2 Árboles n-arios Especificación Utilización Representación Enlazada 5.3 Árboles Binarios de Búsqueda 5.4 Árboles Parcialmente Ordenados 1 Árbol n-ario: O bien es el conjunto

Más detalles

Árboles Binarios Ordenados Árboles AVL

Árboles Binarios Ordenados Árboles AVL Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Diseño e Implementación TAD Árbol Representación de árboles

Más detalles

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,

Más detalles

El TAD Árbol. El TAD Árbol

El TAD Árbol. El TAD Árbol Objetivos! Presentar el árbol como estructura de datos jerárquica! Estudiar diferentes variantes de árboles, tanto en su especificación como en su implementación Contenidos 3.1 Concepto, definiciones y

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Tema 5.1. Árboles. Árboles binarios y generales Prof. Dr. P. Javier Herrera Contenido 1. Introducción 2. Terminología 3. Árboles binarios 4. Árboles generales Tema 5.1.

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Introducción Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. A B C D E F G H I J K Clasificación con respecto a su relación: Nodo hijo: cualquiera de los nodos

Más detalles

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria ESTRUCTURA DE DATOS ABB Arboles de Búsqueda Binaria ÁRBOLES BINARIOS Hasta ahora nos hemos dedicado a estudiar TAD que de una u otra forma eran de naturaleza lineal, o unidimensional. En los tipos abstractos

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

Más detalles

El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol

El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos

Más detalles

EDA. Tema 8 Colas de Prioridad: Heaps

EDA. Tema 8 Colas de Prioridad: Heaps EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones

Más detalles

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles

Más detalles

Estructuras de Datos Clase 20 Árboles de búsqueda

Estructuras de Datos Clase 20 Árboles de búsqueda Estructuras de Datos Clase 20 Árboles de búsqueda Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina

Más detalles

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

Más detalles

Definición de árbol. Árboles

Definición de árbol. Árboles ÁRBOLES Árboles * Definición de árbol * Formas de representación * Nomenclatura sobre árboles * Árboles binarios * Declaración de árbol binario * Recorridos sobre árboles binarios * Construcción de un

Más detalles

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

Estructura de Datos Unidad 6: ARBOLES

Estructura de Datos Unidad 6: ARBOLES Estructura de Datos Unidad 6: ARBOLES A. CONCEPTO DE ARBOL B. TIPOS DE ARBOL C. ARBOL BINARIO D. IMPLEMENTACION DE UN ARBOL BINARIO E. PROYECTO Introducción En ciencias de la informática, un árbol es una

Más detalles

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles generales 9.2 Árboles binarios 9.3 Árboles de búsqueda 9.1 Árboles generales Un árbol es

Más detalles

Algoritmos y Programación II Curso 2006

Algoritmos y Programación II Curso 2006 Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica

Más detalles

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1). ÁRBOL BINARIO - Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la

Más detalles

1. Árbol Binario de Búsqueda: Las clases Java NodoABB y ABB. 1. Definición y representación en Java 2. Operaciones y su coste estimado

1. Árbol Binario de Búsqueda: Las clases Java NodoABB y ABB. 1. Definición y representación en Java 2. Operaciones y su coste estimado Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un ABB Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un Árbol Binario de Búsqueda Germán Moltó Escuela Técnica

Más detalles

1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío.

1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío. Capítulo 6 Árboles 6.1 Introducción Esta no es una estructura lineal, deben conocerlos de matemáticas finitas. Ejemplos: la tabla de contenido de un libro, los que se hacen en los torneos, los arboles

Más detalles

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: 1. Objetivo PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS El alumno comprenderá y aplicara

Más detalles

Programación de sistemas

Programación de sistemas Programación de sistemas Árboles Julio Villena Román MATERIALES CREADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, M.Carmen Fernández Panadero, Raquel M.Crespo García,

Más detalles

Representaciones de árboles

Representaciones de árboles Clase 9 Árboles Generales (segunda parte) http://cs.uns.edu.ar/~sag Bahía Blanca, rgentina Representaciones de árboles Del padre Lista de hijos Goodrich& Tamassia: Del padre + Lista de hijos Hijo extremo

Más detalles

Algoritmos y Estructuras de Datos. Guillermo Román Díez

Algoritmos y Estructuras de Datos. Guillermo Román Díez Algoritmos y Estructuras de Datos Árboles Generales y Árboles Binarios Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/22

Más detalles

Programación Estructuras Arborescentes

Programación Estructuras Arborescentes Programación 2 4 - Estructuras Arborescentes 1 Definición La recursión puede ser utilizada para la definición de estructuras realmente sofisticadas. Una estructura árbol (árbol general o finitario) con

Más detalles

Árboles y esquemas algorítmicos. Tema III

Árboles y esquemas algorítmicos. Tema III Árboles y esquemas algorítmicos Tema III Bibliografía Tema III (lecciones 15 a 22) del libro Campos Laclaustra, J.: Estructuras de Datos y Algoritmos, Prensas Universitarias de Zaragoza, Colección Textos

Más detalles

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 08: TAD Árbol M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Descripción del TAD Árbol Especificación

Más detalles

Introducción a los árboles. Lección 11

Introducción a los árboles. Lección 11 Introducción a los árboles Lección 11 Árbol: Conjunto de elementos de un mismo tipo, denominados nodos, que pueden representarse en un grafo no orientado, conexo y acíclico, en el que existe un vértice

Más detalles

Estructuras de datos utilizando JAVA

Estructuras de datos utilizando JAVA 1 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 Centro de Investigación y Transferencia de Tecnología Estructuras de datos utilizando JAVA Facultad: Ingeniería Escuela: Computación

Más detalles

Tema 14: ÁRBOLES Algoritmos y estructuras de datos I - Tema 14 1

Tema 14: ÁRBOLES Algoritmos y estructuras de datos I - Tema 14 1 Tema 14: ÁRBOLES Estructura Árbol Definición: Una estructura de árbol con tipo base Valor es: (i) Bien la estructura vacía. (ii) Un conjunto finito de uno o más nodos, tal que existe un nodo especial,

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles

Más detalles

Capítulo 8. Árboles. Continuar

Capítulo 8. Árboles. Continuar Capítulo 8. Árboles Continuar Introducción Uno de los problemas principales para el tratamiento de los grafos es que no guardan una estructura establecida y que no respetan reglas, ya que la relación entre

Más detalles

Listas Posicionales. Listas posicionales

Listas Posicionales. Listas posicionales Listas Posicionales Definición: Una lista posicional es una colección de elementos homogéneos, con una relación lineal entre ellos, en la que se puede acceder a los elementos mediante su posición. Se puede

Más detalles

Definición recursiva de los árboles

Definición recursiva de los árboles Árboles Un árbol es una estructura de datos jerarquizada ada dato reside en un nodo, y existen relaciones de parentesco entre nodos: padre, hijo, hermano, ascendiente, descendiente, etc. Ejemplo: apítulos

Más detalles

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar. Definición: ÁRBOL El árbol es como un tipo de grafo cíclico, conexo y no dirigido. Las estructuras tipo árbol se usan principalmente para representar datos con una relación jerárquica entre sus elementos.

Más detalles

Tema 10: Árbol binario de búsqueda

Tema 10: Árbol binario de búsqueda Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de

Más detalles

Estructuras de Datos Clase 10 Árboles binarios

Estructuras de Datos Clase 10 Árboles binarios Estructuras de Datos Clase 10 Árboles binarios Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Estructura de Datos y de la Información Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Laboratorio de Investigación y Desarrollo en Inteligencia Artificial Departamento de Computación

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Tema 10. Árboles. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía

Tema 10. Árboles.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía Tema 10. Árboles http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

Existen varios tipos de árboles: 5.1 Árboles binarios

Existen varios tipos de árboles: 5.1 Árboles binarios 5. Árboles. El árbol es una abstracción matemática de una estructura no lineal que modela una estructura jerárquica. El árbol juega un papel central en el diseño y análisis de algoritmos ya que se utilizan

Más detalles

Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid

Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid Árboles Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Árboles / 1 Índice Concepto Definición no recursiva

Más detalles

Árboles binarios. Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile

Árboles binarios. Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile Árboles binarios Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Árbol: definición v Árbol (del latín arbor oris): Planta perenne,

Más detalles

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común

Más detalles

Estructuras de Datos Clase 10 Árboles binarios

Estructuras de Datos Clase 10 Árboles binarios Estructuras de Datos Clase 10 Árboles binarios Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina

Más detalles

Árboles Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid

Árboles Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid Árboles Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Árboles / 1 Índice Concepto Definición no recursiva

Más detalles

ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz

ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz TEMA 1. Árboles Generalizados Son estructuras de datos no lineales, o también denominadas estructuras multienlazadas. El árbol es una estructura de datos fundamental en informática, muy utilizada en todos

Más detalles

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;

Más detalles

Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación.

Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación. Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación. public class BinTree { public BTNode root; // la raiz

Más detalles

Tema 4. Estructuras no lineales de datos: árboles

Tema 4. Estructuras no lineales de datos: árboles Fundamentos de Programación II Tema 4. Estructuras no lineales de datos: árboles Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de

Más detalles

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

Arboles Binarios de Búsqueda en C++

Arboles Binarios de Búsqueda en C++ Arboles Binarios de Búsqueda en C++ por CCG/Mayo-2014 Tema de Arboles Binarios de Búsqueda, como un poco de teoría para su mejor entendimiento seguidamente mostrare la implementación en lenguaje de programación

Más detalles

Segundo parcial de Programación 2

Segundo parcial de Programación 2 Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas

Más detalles

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López rancisco. Hernández ópez fcoj23@cimat.mx structura de datos no lineal, en la que cada elemento sólo puede estar enlazado con su predecesor (o nodo padre) y sus sucesores (o nodos hijos) xiste un único

Más detalles

ARBOLES ARBOLES COMPUTACIONALES MATEMATICAS DISCRETAS II

ARBOLES ARBOLES COMPUTACIONALES MATEMATICAS DISCRETAS II ARBOLES ARBOLES COMPUTACIONALES MATEMATICAS DISCRETAS II Contenido Concepto Características y Propiedades Tipos de Arboles 1. Libres 2. Binarios 3. Expansión Mínima Algoritmo de Kruskal Algoritmo Prim

Más detalles

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre Algoritmos http://www.lfcia.org/alg/ 2007-2008 Ingeniería Informática Ingeniería Técnica de Informática de Gestión Práctica 5 Fecha límite de entrega: viernes, 14 de diciembre Implementación de un Diccionario

Más detalles

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente:

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente: ASIGNATURA TITULACIÓN APELLIDOS ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN EJERCICIO 1 (3 PUNTOS) GRUPO CURSO CONVOCATORIA NOMBRE 23 / 24 EXTRAORDINARIA- SEPTIEMBRE CALIFICACIÓN Dado el tipo abstracto de

Más detalles

Estructura de datos y algoritmos. Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios

Estructura de datos y algoritmos. Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios Estructura de datos y algoritmos Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios TEMA V : TIPOS DE DATOS ABSTRACTOS NO LINEALES: ÁRBOLES 5.1 Conceptos y definiciones 5.2 Árboles perfectamente

Más detalles

Examen Teórico Convocatoria de Junio de 2012

Examen Teórico Convocatoria de Junio de 2012 Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica

Más detalles

Introducción a Árboles Árboles Binarios

Introducción a Árboles Árboles Binarios Introducción a Árboles Árboles Binarios Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Introducción a Árboles Estructuras hasta ahora Estructuras

Más detalles

Estructura de Datos. Árboles. Árboles. Primer Semestre, 2010 ÍNDICE DE CONTENIDOS

Estructura de Datos. Árboles. Árboles. Primer Semestre, 2010 ÍNDICE DE CONTENIDOS Estructura de Datos Árboles Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 ÍNDIE DE ONTENIDOS oncepto de árbol. Terminología básica Árboles generales Árboles inarios () Árboles inarios

Más detalles

Tema 12- Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario

Tema 12- Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario Tema - Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario Tema - Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario Germán Moltó Escuela

Más detalles

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.

Más detalles

Estructura de Datos. Estructuras de Datos no lineales : Árboles

Estructura de Datos. Estructuras de Datos no lineales : Árboles Estructura de Datos Estructuras de Datos no lineales : Árboles Definiciones de Árbol En términos matemáticos, un árbol es cualquier conjunto de puntos, llamados vértices, y cualquier conjunto de pares

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación: Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica

Más detalles

Árboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63

Árboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63 y B + 3.8 y B+! Problema de los ABB cuando se usa almacenamiento secundario:! la búsqueda de un elemento requeriría muchos accesos a disco (un acceso a disco es extremadamente lento si lo comparamos con

Más detalles

Estructuras de Datos y Algoritmos. Curso 2004/05 Tema 6. Árboles y Árboles Binarios

Estructuras de Datos y Algoritmos. Curso 2004/05 Tema 6. Árboles y Árboles Binarios Estructuras de Datos y Algoritmos. Curso 2004/05 Tema 6. Árboles y Árboles Binarios Mabel Galiano Natividad Prieto Departamento de Sistemas Informáticos y Computación Escuela Técnica Superior de Informática

Más detalles

Introducción: una simple colección

Introducción: una simple colección Introducción: una simple colección Implemente una clase denominada Lista. La clase deberá mantener una colección de números y proveer los siguientes i métodos: Listas dinámicas simplemente enlazadas Franco

Más detalles

Tipos abstractos de datos (TAD)

Tipos abstractos de datos (TAD) Capítulo 2 Tipos abstractos de datos (TAD) Objetivo: Introducir al alumno las estructuras de datos mediante el concepto de tipo abstracto de datos. En este capítulo se presenta una primera implementación

Más detalles

Tema: Arboles en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Definición de Árbol Binario. Programación IV. Guía No.

Tema: Arboles en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Definición de Árbol Binario. Programación IV. Guía No. Programación IV. Guía No. 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Arboles en C#. Objetivos Específicos Definir el concepto de la estructura de datos Árbol. Implementar

Más detalles

Estructuras de Datos Clase 6 Listas e Iteradores (primera parte)

Estructuras de Datos Clase 6 Listas e Iteradores (primera parte) Estructuras de Datos Clase 6 Listas e Iteradores (primera parte) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía

Más detalles

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

Tema 6: Estructuras de datos recursivas

Tema 6: Estructuras de datos recursivas Tema 6: Estructuras de datos recursivas Índice 1 Listas jerárquicas...2 2 Árboles binarios... 4 3 Árboles genéricos...7 4 Referencias...10 1. Listas jerárquicas Las listas tienen la propiedad de la clausura

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

CLAVE EXAMEN: a cd. c u r s o r = c u r s o r. g e t S i g u i e n t e ( ) ; p o s i c i o n ++;

CLAVE EXAMEN: a cd. c u r s o r = c u r s o r. g e t S i g u i e n t e ( ) ; p o s i c i o n ++; Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software UPM ETSIINF. Exámen de Programación II. Convocatoria extraordinaria.08-07-2016. Realización: El test se realizará en la hoja

Más detalles

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada

Más detalles

Tema 6- Estructuras de Datos: Jerarquía de. Tema 6- Estructuras de Datos: Jerarquía de una EDA

Tema 6- Estructuras de Datos: Jerarquía de. Tema 6- Estructuras de Datos: Jerarquía de una EDA Tema 6- Estructuras de Datos: Jerarquía de una EDA Tema 6- Estructuras de Datos: Jerarquía de una EDA Índice general: 1. Definición y Uso de una EDA 2. Diseño de una EDA en Java 3. Organización de una

Más detalles

Programación TADs Arboles

Programación TADs Arboles Programación 2 10 - TADs Arboles 1 Arboles Una estructura árbol (árbol general) con tipo base T es, 1. O bien la estructura vacía 2. O bien un nodo de tipo T, llamado raíz del árbol, junto con un número

Más detalles

12/08/2017 AVL. Especificación sobre árboles AVL. AVL: rotaciones

12/08/2017 AVL. Especificación sobre árboles AVL. AVL: rotaciones VL Se dice que un árbol binario está balanceado si y sólo si en cada nodo las alturas de sus 2 subárboles difieren como máximo en 1. Todos los árboles perfectamente balanceados son árboles VL. Especificación

Más detalles

B) Contestar Verdadero o Falso a las siguientes preguntas, justificando la respuesta:

B) Contestar Verdadero o Falso a las siguientes preguntas, justificando la respuesta: ASIGNATURA CURSO CALIFICACIÓN ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN 2005 / 2006 TITULACIÓN GRUPO CONVOCATORIA EXTRAORDINARIA - DIC B) Contestar Verdadero o Falso a las siguientes preguntas, justificando

Más detalles

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola Objetivos Trabajar sobre el Tipo Abstracto de Datos Lista, reforzando el desacople entre especificación e implementación. Retomar las implementaciones vistas, como ser Listas Doblemente Encadenadas, Listas

Más detalles

ARBOLES B. Lo que si es cierto es que la letra B no significa "binario", ya que:

ARBOLES B. Lo que si es cierto es que la letra B no significa binario, ya que: ARBOLES B El problema original comienza con la necesidad de mantener índices en almacenamiento externo para acceso a bases de datos, es decir, con el grave problema de la lentitud de estos dispositivos

Más detalles

Estructuras de datos. Estructuras de datos

Estructuras de datos. Estructuras de datos Un arbol es un conjunto de nodos que cumplen con las relaciones padre, hijo y hermano. Llamamos hijos de un nodo a todos los nodos que podemos llegar directamente por medio de un apuntador hacia ellos

Más detalles

LECCION N 08 ARBOLES. Un árbol es un grafo A que tiene un único nodo llamado raíz que:

LECCION N 08 ARBOLES. Un árbol es un grafo A que tiene un único nodo llamado raíz que: LECCION N 08 ARBOLES Los árboles son estructuras de datos útiles en muchas aplicaciones. Hay varias formas de árboles y cada una de ellas es práctica en situaciones especiales, en este capítulo vamos a

Más detalles

Matemáticas Básicas para Computación

Matemáticas Básicas para Computación Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 11 Nombre: Árboles Objetivo: Al término de la sesión el participante conocerá los tipos de grafos específicamente

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

Segundo Parcial de Programación 2 7 de junio de 2017 Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º 1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Estructuras de control selectivas

Estructuras de control selectivas Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos

Más detalles