INGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES

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

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

Programación de sistemas Árboles

Estructura de Datos Unidad 6: ARBOLES

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

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

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

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

Roberto Carlos Abreu Díaz. October 28, 2009

Estructuras de Datos ARBOLES Y GRAFOS

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

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.

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

Programación II Arboles Binarios(AB)

PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA

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

Estructuras de Datos

Sólo una opción es correcta en cada pregunta. Cada respuesta correcta suma 1 4. puntos. Cada respuesta incorrecta resta 1 12

Estructuras de Datos. 14 de junio de Apellidos

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

Estructura de Datos. Índice

Árbol ABB equilibrado. Lección: Árboles. Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58

Programación de sistemas

Introducción a Árboles Árboles Binarios

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

Tema 10: Árbol binario de búsqueda

Programación II Árboles binarios de búsqueda (ABB)

Programación Estructuras Arborescentes

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

Arboles Binarios de Búsqueda en C++

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

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

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

Introducción a Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

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

ÁRBOLES BINARIOS DE BÚSQUEDA (ABB)

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Estructuras de datos: Árboles binarios de

TEMA 4. Árboles CONSIDERACIONES GENERALES.

Tema 4- Representación Enlazada

Estructura de Datos. Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos)

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS

Una clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos

Examen de Programación 1. Viernes 31/enero/2014. Problema 1 o (2.5 puntos) Disponer un documento de identificación con fotografía sobre la mesa.

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

EDA. Tema 8 Colas de Prioridad: Heaps

Ejercicios del Tema 3 Estructuras jerárquicas: Árboles

Tema 7: Árboles ESTRUCTURAS DE DATOS 1

Programación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario

Algoritmos y Programación II Curso 2006

Segunda parte de árboles

ESTRUCTURAS DE DATOS Y ALGORITMOS

Estructuras de datos utilizando JAVA

Tema 2: Clases y Objetos

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

Grados Ing. Inf. y Mat. Inf. Noviembre 2011 Algoritmos y Estructura de Datos Página 1 de 6

Versión Iterativa de recuperar en un. Soluciones Ejercicios Tema 11. protected NodoABB<E> recuperarmax(nodoabb<e> n) { while (n.der!= null) n = n.

Examen escrito de Programación 1

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

Árboles y esquemas algorítmicos. Tema III

INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS

Árboles Binarios Ordenados Árboles AVL

2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).

La máxima distancia entre dos nodos de un árbol está dada por alguna de las 3 siguientes: La máxima distancia entre dos nodos del subárbol izquierdo.

Existen varios tipos de árboles: 5.1 Árboles binarios

Estructuras de datos Solemne 2

Capitulo VI Árboles y Grafos

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

Definición recursiva de los árboles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

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

/** * Raíz del árbol de contactos presentes en el directorio */ private. /** * Número de contactos en el directorio */ private int numcontactos;

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 7: Árbol Binario

Estructuras de Datos Clase 20 Árboles de búsqueda

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.

Estructuras de Datos y Algoritmos

FUNDAMENTOS DE PROGRAMACIÓN Datos recursivos II

Estructura de Datos Tema 6. Árboles. Contenido 14/06/2018

Implementación de las Clases Pila, Cola, Lista y Arbol

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

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

Estructuras de datos. Estructuras de datos

Representaciones de árboles

CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES

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

ADSW Tema 2 Diccionarios

Tema: ARBOLES. Instructor: MC. Gerardo Gálvez Gámez Junio de 2018 INTRODUCCIÓN:

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa

Unidad Nº V Listas Enlazadas

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

Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas. Guillermo Román Díez

Tema 09: TAD Árbol binario

Estructuras de datos y algoritmos

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

Transcripción:

INGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. También se suele dar una definición recursiva: un árbol es una estructura compuesta por un dato y varios árboles. Estas definiciones son simples, pero, las características que implican no lo son tanto. Componentes de un árbol A B C D E F G H I J K L M N O Una característica importante de los árboles es que cada nodo sólo puede ser apuntado por otro nodo, es decir, cada nodo sólo tendrá un padre. Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. En el ejemplo, L y M son hijos de G. Nodo padre: Nodo del que salen otros nodos. En el ejemplo B es padre de E y F Nodo raíz: nodo que no tiene padre, Nodo hoja: nodo que no tiene hijos. Del ejemplo, K,F,L,M,H,I,N,O son nodos hoja. Cada nodo en un árbol está ubicado en un nivel determinado, empezando por la raíz que se encuentra en el nivel cero (0), sus hijos en el nivel 1, 2, y así sucesivamente, hasta la profundidad o altura que corresponde al máximo nivel del árbol. Orden: es el número máximo de hijos que puede tener cada elemento del árbol. De este modo, diremos que un árbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres será de orden tres, etc. Los arboles de orden dos son bastante especiales, de hecho les dedicaremos varios capítulos. Estos árboles se conocen también como árboles binarios ARBOLES BINARIOS Es un árbol especial donde cada nodo padre como máximo tiene dos hijos, denominados como hijo izquierdo y derecho.

INGENIERIA DE SISTEMAS 20 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES BINARIOS DE BÚSQUEDA (ABB) Se trata de arboles en los que se cumple que para cada nodo, el valor del nodo izquierdo de cada raíz es menor que el valor del nodo raíz y que el valor del nodo derecho de la raíz. 6 raiz 4 12 2 5 10 18 3 23 20 Inserción de datos en un Arbol Binario de Búsqueda Cuando se insertan los datos, el primer dato siempre será la raíz. Los siguientes datos buscarán su posición, siguiendo la lógica de que los datos menores son a la izquierda y los datos mayores a la derecha. Por ejemplo: si la secuencia de inserción de datos sería la siguiente: 20, 6, 24, 5, 9, 22, 26, 29, 7, 10, 3, 25 El árbol generado es 20 6 24 5 9 22 26 3 7 10 25 29

INGENIERIA DE SISTEMAS 21 ESTRUCTURAS DE DATOS (Listas simples) Recorridos de un árbol Existen tres tipos de recorridos - Recorrido en pre-orden (RID Raíz, izquierda, derecha) - Recorrido en orden (IRD Izquierda, raíz, derecha) - Recorrido en post-orden (IDR izquierda, derecha, raíz) Por ejemplo los recorridos del anterior árbol de ejemplo anterior serían como sigue: En pre-orden: 20, 6, 5, 3, 9, 7, 10, 24, 22, 26, 25, 29 En orden: 3, 5, 6, 7, 9, 10, 20, 22, 24, 25, 26, 29 En post-orden: 3, 5, 7, 10, 9, 6, 22, 25, 29, 26, 24, 20 IMPLEMENTACIÓN DE ARBOLES BINARIOS DE BUSQUEDA EN JAVA NODO class Nodo info int info; Nodo izda; 5 Nodo dcha; izda dcha public Nodo(int a) info=a; null null izda=dcha=null; ARBOL class Arbol Nodo raiz; raiz void insertar(int a) Nodo aux=new Nodo(a); 5 if(raiz==null) raiz=aux; 5 5 Nodo p,q; null null null null p=q=raiz; while(p!=null) q=p; if(a<p.info) p=p.izda; p=p.dcha; if(a<q.info) q.izda=aux; q.dcha=aux;

INGENIERIA DE SISTEMAS 22 ESTRUCTURAS DE DATOS (Listas simples) EJEMPLO class prueba public static void main(string[] args) Arbol a=new Arbol(); a.insertar(2); a.insertar(1); a.insertar(3); a.inorden(a.raiz); void inorden(nodo r) if(r!=null) inorden(r.izda); System.out.print(r.info+" "); inorden(r.dcha); Función que devuelve la cantidad de Nodos en un árbol int cantidad(nodo r) if(r==null) return 0; return 1+cantidad(r.izda)+cantidad(r.dcha); Función que devuelve la Profundidad (altura) de un árbol La profundidad de un árbol es el nivel más largo que tiene el árbol int profundidad(nodo r) if(r!=null) int i=1,d=1; if(r.izda==null&&r.dcha==null) return 1; if(r.izda!=null) i=i+profundidad(r.izda); if(r.dcha!=null) d=d+profundidad(r.dcha); if(i>d) return i; return d; return 0;

INGENIERIA DE SISTEMAS 23 ESTRUCTURAS DE DATOS (Listas simples) Función que busca un nodo en el árbol boolean buscar(nodo r,int a) if(r==null) return false; if(a<r.info) return buscar(r.izda,a); if(a>r.info) return buscar(r.dcha,a); return true;