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.
|
|
- Marcos Prado Ávila
- hace 7 años
- Vistas:
Transcripción
1 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 genealógicos. 6.2 Motivación Se tiene el problema de eliminar los elementos duplicados de un conjunto de datos. Para resolverlo se puede ir comparando cada dato con el resto del arreglo y al encontrar duplicados eliminarlos. Otra posibilidad, es ordenar los datos y los elementos duplicados quedan juntos así con una pasada al arreglo se pueden eliminar los duplicados (aquí la complejidad está en el ordenamiento). Una tercera opción es utilizar un árbol como sigue: 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. (a) Leer un número y compararlo con la raíz. (b) Si coinciden entonces hay un duplicado y no hay nada que hacer. (c) Si el número es menor repetir el proceso con el árbol izquierdo. (d) Si el número es mayor repetir el proceso con el árbol derecho. 1
2 6.3. DEFINICIONES 2 3. Si se llegó a un árbol vacío entonces almacenar el número en una nueva posición del árbol. Hacer dibujo de ejemplo: se dibuja al revés del mundo real, es decir arriba queda la raíz y las hojas hacia abajo. 6.3 Definiciones Árbol = colección de nodos conectados por arcos directos, en el cual no hay ciclos y existe un nodo distiguido llamado raíz. Hay un único camino de la raíz a cualquier nodo. Raíz = elemento distinguido a partir del cual se forma el árbol. Otra forma de definir la raíz es indicando que es nodo que no tiene ancestros. Padre = nodo que apunta a otros. Hijo = nodo apuntado por otros. Ancestros de un nodo = nodos a nivel superior conectados al nodo dado. Descendientes de un nodo = nodos de nivel inferior conectados al nodo dado. Hojas = Nodos sin hijos. Nodo interior = nodo con hijos. Altura = Mayor número de enlaces que se recorren al ir de la raíz a cualquier hoja. Nota que en todo árbol cualquier nodo puede considerarse la raíz de otro árbol formado por sus descendientes. De ahí que en árboles se utilice mucho la recursión, incluso en su definición: Un árbol es: Un nodo sin hijos es un árbol. Tal árbol se denomina una hoja y su altura es 0.
3 6.3. DEFINICIONES 3 Un nodo con una colección no vacía de hijos es un árbol. Este nodo es el padre y se denomina nodo interior. La altura de un nodo interior es uno más que la máxima altura de sus hijos. Un nodo sin padres se denomina raíz del árbol. Ejemplos: arboles genealógicos, arboles de torneos, organigramas, etc. Ejemplo de uso en computación, son los parsers o traductores sintácticos. Si se tiene la siguiente gramática: <proposición> ::= <selección> <expr> <selección> ::= if ( <exp> ) <proposición> else <proposición> <expr> ::= <relacional> <asignación> identificador <relacional> ::= <expr> < <expr> <asignación> ::= <expr> = <expr> Para la instrucción: if (a <b) max = b else max = a se construye un árbol como el que sigue:... <proposición> <selección> if <expr> <prop> else <prop> Las hojas representan los elementos terminales o símbolos empleados en la proposición. Los nodos interiores representan las categorías sintácticas. El compilador entre sus tareas tiene construir estos árboles para cada programa y verificar que éste cumpla con las reglas de la gramática en cuyo caso genera código objeto. También se usan los árboles para las expresiones, aunque para esto se requiere considerar la prioridad de los operadores. Con los recorridos generar postfija, prefija e infija y luego usar pilas para evaluar las expresiones.
4 6.4. ÁRBOLES BINARIOS Árboles binarios Un árbol cuyos nodos tienen a lo más dos hijos se denomina binario. Un árbol binario de altura 0 sólo tiene a la raíz. Propiedades: Un árbol binario completo de altura n tiene a lo más 2 n hojas y el número de nodos es 2 n+1 1 Un árbol binario de n nodos debe tener a lo más una trayectoria de la raíz a las hojas de longitud mayor o igual a l ogn. En un árbol binario completo de n nodos, la mayor trayectoria de la raíz a su hojas no recorre mas de logn nodos. 6.5 Conversión de un árbol a binario Debido a la facilidad de manipular arboles binarios es conveniente representar un árbol cualquiera a binario. Ejemplo: A B C D E F G H I J Figura 6.1: Árbol no binario. Para convertirlo conservando la relación jerárquica entre los nodos, puede verse que hay dos tipos de nodos los hijos y los hermanos. Entonces se pone del lado izquierdo al primer hijo y del lado derecho a los hermanos. A B C -- D E - F G H -- I -- J Aunque no parece un árbol sí lo es. Si lo giramos se puede ver como estamos acostumbrados.
5 6.6. IMPLEMENTACIÓN Implementación Para implementar un árbol binario se usan nodos con dos ligas. Una para el hijo izquierdo y otra para el derecho. En este caso no hay una interfaz que implementar, el árbol se va creando de acuerdo a las necesidades de la aplicación. Los nodos que se utilizarán en la construcción de todo árbol binario en este texto son de la siguiente clase: class NodoBinario { public Object valor; // Valor del nodo public NodoBinario izquierda; // Liga a la izquierda public NodoBinario derecha; // Liga a la derecha /* * Inicializa con null el nodo creado. public NodoBinario () { valor = null; izquierda = null; derecha = null; * Inicializa el nodo con el valor dado como parámetro v valor public NodoBinario (Object v) { valor = v; izquierda = null; derecha = null; public NodoBinario (Object v, NodoBinario iz, NodoBinario der) { valor = v; izquierda = iz; derecha = der;
6 6.7. RECORRIDOS Recorridos Se desea imprimir todos los nodos del árbol, no necesariamente en forma de árbol. Por ejemplo, con el siguiente árbol: A B C D E F G H I Figura 6.2: Árbol para recorrido. Como los hacemos? Dado que no hay un orden lineal. Si se considera que tiene n nodos independientes, entonces hay n! secuencias en las cuales se puede visitar cada nodo. Generalmente, los algoritmos de recorrido se definen recursivamente en tres pasos: 1. Procesar un nodo. 2. Recursivamente visitar y procesar el sub-árbol izquierdo. 3. Recursivamente visitar y procesar el sub-árbol derecho. En este caso ya redujimos el número de posibilidades a seis: 1. Procesar un valor, luego el sub-árbol izquierdo y por último el sub-árbol derecho. 2. Procesar el sub-árbol izquierdo, luego el valor y por último el sub-árbol derecho. 3. Procesar el sub-árbol izquierdo, luego el sub-árbol derecho y por último el valor. 4. Procesar un valor, luego el sub-árbol derecho y por último el izquierdo.
7 6.7. RECORRIDOS 7 5. Procesar el sub-árbol derecho, luego el valor y por último el sub-árbol izquierdo 6. Procesar el sub-árbol derecho, luego el sub-árbol izquierdo y por último el valor. En la mayoría de los casos de interés, los arboles se analizan de izquierda a derecha, con lo cual las posibilidades se reducen a tres. 1. pre-orden: nodo, sub-árbol izquierdo, sub-árbol derecho. Es decir el padre está antes que los hijos (Pre). 2. in-orden: sub-árbol izquierdo, nodo, sub-árbol derecho. El padre está en medio de los hijos (In). 3. post-orden: sub-árbol izquierdo, sub-árbol derecho, nodo. El padre está después de los hijos (Post). Su programación es relativamente sencilla: void preorden (NodoBinario n) { if (n!= null) { procesar(n.valor); preorden(n.izquierdo); preorden(n.derecho); Para el árbol del inicio de la sección los recorridos son: Pre: ABDGCEHIF In: DGBAHEICF Post: GDBHIEFCA Si ahora el árbol fuera el siguiente: los recorridos serían: Preorden: que corresponde a la notación prefija. Inorden: que corresponde a la notación infija.
8 6.7. RECORRIDOS 8 * + B C D E Figura 6.3: Árbol con una expresión aritmética. Postorden: que corresponde a la notación postfija. Cómo hago para recorrer el árbol por niveles? Examinar primero todos los nodos del nivel 1 (la raíz), luego de izquierda a derecha todos los del nivel 2, etc. Para resolver este problema se utiliza una cola en la cual se van guardando los nodos visitados. Primero se inserta la raíz y luego en cada paso se elimina un nodo de la cola y sus hijos se colocan en la cola. * Programa que recorre un arbol por niveles. Amparo López Gaona Noviembre 2004 class OrdenPorNivel implements java.util.iterator { private Cola c = new Cola(); public OrdenPorNivel (NodoBinario raiz) { c.agregar(raiz); public boolean hasnext() { return! c.estavacia(); public Object next() { NodoBinario actual = (NodoBinario) c.tomar(); if (actual.izquierda!= null) c.agregar(actual.izquierda); if (actual.derecha!= null) c.agregar(actual.derecha);
9 6.8. ARBOLES DE BÚSQUEDA 9 return actual.valor; public void remove () { throw new IllegalStateException(); Para probarlo en un método imprime poner este cuerpo: public void imprime() { OrdenPorNivel e = new OrdenPorNivel(raiz); while(e.hasnext()) System.out.print(e.next()+" "); 6.8 Arboles de búsqueda Un árbol binario de búsqueda es uno en el que para cada nodo se cumple que los valores de su árbol izquierdo son menores que él, y los del lado derecho son mayores que él. Con lo cual un recorrido en inorden los proporciona en orden ascendente. Ejemplo: Alejandro Alberto Andrea Abigail Adela Alicia Amparo Adan Agustin Arturo Figura 6.4: Árbol de búsqueda Una ventaja de usar arboles que para localizar un elemento se tiene que recorrer a lo más de la raíz a la hoja correspondiente lo cual toma O(logn). El árbol del ejemplo contiene 10 elementos y su profundidad es cuatro.
10 6.8. ARBOLES DE BÚSQUEDA 10 En el constructor se requiere un objeto comparador que será utilizado para hacer las pruebas de relación de orden entre los valores en el árbol. import java.util.comparator; public class ArbolBusBin { protected NodoBinario raiz = null; public final Comparator prueba; * Inicializa un árbol binario de búsqueda. c objeto comparador usado para colocar elementos en secuencia. public ArbolBusBin (Comparator c) { prueba = c; raiz = null; * Determina si el árbol está vacío. true en caso de que el árbol esté vacío. public boolean estávacio () { return raiz == null; El procedimiento consiste en comparar el elemento buscado con el nodo raíz, si son iguales ya se terminó el trabajo. En caso contrario se verifica si es menor se vuelve a realizar este método ahora con el sub-árbol izquierdo, en caso de ser mayor se trabaja con el sub-árbol derecho. Notar que es un método recursivo puesto que en la definición se presta para ello. * Inserta en el árbol, ignora duplicados. x el dato a insertaar public void inserta(object x) { raiz = inserta(x, raiz); * Método interno para insertar en un sub-árbol.
11 6.8. ARBOLES DE BÚSQUEDA 11 x el dato a insertar. t la raíz del árbol. la nueva raíz. private NodoBinario inserta(object x, NodoBinario t) { if(t == null) t = new NodoBinario(x); else if(prueba.compare(x,t.valor) < 0) t.izquierda = inserta(x, t.izquierda); else if(prueba.compare(x, t.valor) > 0) t.derecha = inserta(x, t.derecha); else ; // No hace nada con los duplicados return t; El siguiente método permite determinar si un elemento está en el árbol o no. * Busca un dato en el árbol. x el dato a buscar. el elemento en el árbol o bien null si no está. public boolean encuentra(object x) { return encuentra(x, raiz); * Método interno para encontrar un elemento en un árbol. x el elemento a buscar. t el nodo raíz del árbol el nodo que contiene el dato buscado. private boolean encuentra(object x, NodoBinario t) { if(t == null) return false; if(prueba.compare (x, t.valor) < 0) return encuentra(x, t.izquierda); else if(prueba.compare(x,t.valor) > 0)
12 6.8. ARBOLES DE BÚSQUEDA 12 return encuentra(x, t.derecha); else return true; // Lo encontró Ahora vamos a ver como eliminar un elemento del árbol. Para ello una vez encontrada la posición del nodo no se puede dejar un hueco. Este lugar debe llenarse con uno de los siguientes valores: El valor mayor en el subárbol izquierdo. El valor menor en el subárbol derecho. * Elimina un elemento del árbol, en caso de no encontrarlo no hace nada. x el dato a eliminar public void elimina(object x) { raiz = elimina(x, raiz); * Método interno para eliminar de un subárbol. x el dato a eliminar. t el nodo raíz del árbol. la nueva raíz. private NodoBinario elimina(object x, NodoBinario t) { if(t == null) return t; // No lo encontró if(prueba.compare(x, t.valor) < 0) t.izquierda = elimina(x, t.izquierda); else if(prueba.compare(x, t.valor) > 0) t.derecha = elimina(x, t.derecha); else if(t.izquierda!= null && t.derecha!= null) { //Tiene dos hijos t.valor = encuentramin(t.derecha).valor; t.derecha = elimina(t.valor, t.derecha); else // A lo más tiene un hijo t = (t.izquierda!= null)? t.izquierda : t.derecha;
13 6.9. ARBOLES AVL 13 return t; Por último veremos cómo imprimir los datos en orden ascendente. * Imprime el contenido del árbol ordenado. public void imprimeárbol() { if(estávacio()) System.out.println("Árbol vacio"); else imprimeárbol(raiz); * Método interno para imprimir un subárbol. t nodo raiz del árbol. private void imprimeárbol(nodobinario t) { if(t!= null) { imprimeárbol(t.izquierda); System.out.println(t.valor); imprimeárbol(t.derecha); 6.9 Arboles AVL La ventaja de usar un árbol de búsqueda se pierde si éste no está balanceado,porque la búsqueda podría en el peor de los casos (cuando el árbol sólo tiene una rama hacia uno de los lados) tomar n comparaciones. Es decir, si se tiene un árbol como el siguiente: Para evitar estos problemas se requiere que el árbol esté balanceado. Un árbol está balanceado si para todo nodo en el árbol, la diferencia entre la altura de su subárbol derecho y su subárbol izquierdo es a lo más uno. Como la altura es un elemento muy importante en este tipo de árboles, se incluye está información en cada nodo.
14 6.9. ARBOLES AVL 14 class NodoAvl extends NodoBinario{ //Hereda valor, izquierda y derecha int altura; NodoAvl( Object val ) { this(val, null, null ); altura = 0; NodoAvl( Object val, NodoAvl iz, NodoAvl der ) { super(val,iz,der); altura= 0; El código para crear el árbol es el siguiente: * Inserta un nodo en el árbol, ignorando los duplicados x el elemento a insertar. public void insertar(object x) { raiz = insertar(x, raiz); * Método interno, auxiliar, para insertar en un árbol. x elemento a insertar. t nodo raiz del árbol. la nueva raiz. private NodoAvl insertar(object x, NodoAvl t) { if(t == null) t = new NodoAvl(x); else if(cmp.compare(x, t.elemento) < 0) { t.izquierda = insertar(x, t.izquierda); if(altura(t.izquierda) - altura(t.derecha) == 2) if(cmp.compare(x, t.izquierda.elemento) < 0) t = rotarizq(t);
15 6.9. ARBOLES AVL 15 else t = doblerotacionizquierda(t); else if(cmp.compare(x, t.elemento) > 0) { t.derecha = insertar(x, t.derecha); if(altura(t.derecha) - altura(t.izquierda) == 2) if(cmp.compare(x, t.derecha.elemento) > 0) t = rotarder(t); else t = doblerotacionderecha(t); else ; // Encontró un duplicado y no hace nada. t.altura = max(altura(t.izquierda), altura(t.derecha)) + 1; return t; private int altura (Nodo Avl t) { return (t == null)? -1 : t.altura; Los métodos para rotar son los siguientes: private NodoAvl rotarizq(nodoavl n) { NodoAvl nraiz = n.izquierda; n.izquierda = nraiz.derecha; nraiz.derecha = n; n.altura = max(altura(n.izquierda), altura(n.derecha)) + 1; nraiz.altura = max(altura(nraiz.izquierda), n.altura) + 1; return nraiz; private NodoAvl rotarder(nodoavl n) { NodoAvl nraiz = n.derecha; n.derecha = nraiz.izquierda; nraiz.izquierda = n; n.altura = max(altura(n.izquierda), altura(n.derecha)) + 1; nraiz.altura = max(altura(nraiz.derecha), n.altura) + 1; return nraiz;
16 6.9. ARBOLES AVL 16 private NodoAvl doblerotacionizquierda(nodoavl n) { n.izquierda = rotarder(n.izquierda); return rotarizq(n); private NodoAvl doblerotacionderecha(nodoavl n) { n.derecha = rotarizq(n.derecha); return rotarder(n); Para suprimir cualquier elemento del árbol AVL se puede usar el mismo método que para árboles de búsqueda sencillos.
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 detallesEstructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Más detallesTEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica
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
Más detalles2. 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).
Capítulo 7 Heap 7.1 Introducción Una cola de prioridad es una estructura de datos apropiada cuando la tarea más importante es localizar y/o eliminar el elemento con valor menor de una colección. Ejemplo
Más detallesPilas Motivación
Capítulo 4 Pilas Las pilas son estructuras muy sencillas y poderosas, también conocidas como LIFO (last in, first out) por la forma en que se trabaja con ellas. Ejemplo de ellas son las pilas de charolas
Más detallesPROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA
PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA UNIDAD DE APRENDIZAJE ADMINISTRACION DE BASES DE DATOS Unidad de competencia III Manejar las estructuras dinámicas en memoria secundaria Arboles ELABORACION
Más detallesEstructura de Datos. Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos)
Ing. En Sistemas Computacionales Estructura de Datos Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos) Ing. Néstor Alejandro Carrillo López Arboles Un árbol es un conjunto finito
Más detallesÁ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 detallesTema 09: TAD Árbol binario
Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario
Más detallesProgramación II Árboles binarios de búsqueda (ABB)
Programación II Árboles binarios de búsqueda (ABB) Definición Un árbol binario de búsqueda(abb) a es una estructura de datos de tipo árbol binario en el que para todos sus nodos, el hijo izquierdo, si
Más detallesA) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES
Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN
Más detallesEl 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 detallesEstructuras 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 detallesTema: ARBOLES. Instructor: MC. Gerardo Gálvez Gámez Junio de 2018 INTRODUCCIÓN:
UNIVERSIDAD AUTÓNOMA DE SINALOA Facultad de Informática uliacán Tema: AROLES Instructor: M. Gerardo Gálvez Gámez Junio de 2018 INTRODUIÓN: Hasta el momento solo se han estudiado estructuras lineales y
Más detallesÁ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 detallesEstructura de Datos Tema 6. Árboles. Contenido 14/06/2018
Estructura de Datos Tema 6. Árboles Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. dtorres@mixteco.utm.mx Contenido 1. Definición y operaciones
Más detallesProgramación de sistemas Árboles
Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto
Más detallesEstructura 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 detallesEstructura 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 detallesEstructura 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 detallesEjercicio 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 detallesEstructura de Datos. Índice
TEMA 5. ÁRBOLES (I) 1 Índice 1. Concepto de árbol 2. Árboles binarios 1. Especificación informal del TAD árbol binario 2. Implementación del TAD árbol binario 3. Recorrido de un árbol binario 4. Árboles
Más detallesESTRUCTURA 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 detallesContenido 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 detallesUNIVERSIDAD 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Árbol ABB equilibrado. Lección: Árboles. Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58
Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58 Índice 1 Árbol de búsqueda 2 2/ 58 Índice Árbol de búsqueda 1 Árbol de búsqueda 2 3/ 58 Árbol de búsqueda Es
Más detallesCapí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 detallesDiseño y Análisis de Algoritmos con Java(I Sem. 2004) Prof. Dr.Eric Jeltsch F.
Arboles En esta sección se presentan los árboles que son un tipo de dato abstracto más adecuado para el tratamiento de grandes cantidades de información, las aplicaciones de los mismos son muy diversas,
Más detallesEstructura 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 detallesIntroducció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 detallesClase 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 detallesProgramación II Tema 5. Árboles binarios
ontenidos Programación II Tema 5. Árboles binarios Iván antador ompletitud de búsqueda onstrucción de un árbol e inserción y búsqueda de un elemento y recorrido onstrucción ontenidos ompletitud de búsqueda
Más detallesProgramació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 detallesProgramación II Arboles Binarios(AB)
Programación II Arboles Binarios(AB) Definición Un árbol consta de un conjunto finito de elementos, denominados nodos, y un conjunto finito de líneas dirigidas, denominadas enlaces, que conectan los nodos.
Más detallesEstructuras 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 detallesESTRUCTURAS 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 detallesNIVEL 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 detallesTemario. 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 detallesTema Á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 detallesPRÁ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 detallesUna clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos
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 Definición formal del lenguaje por comprensión L = {C n D m \ n,m >0 Donde C representa
Más detallesEstructuras de Datos ARBOLES Y GRAFOS
Estructuras de Datos ARBOLES Y GRAFOS Rosa Barrera Capot rosa.barrera@usach.cl Grafo? Características Permiten Modelar un problema Aplicaciones: Ingeniería de Sistemas Modelado de Redes Ingeniería Industrial
Más detallesAlgoritmos 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 detallesLaboratorio de Estructuras de Datos II
Laboratorio de Estructuras de Datos II Segundo examen parcial Fecha límite de entrega: Jueves 19 de noviembre de 2009, 3:59:59 p.m. Los árboles B son estructuras de datos jerárquicas que se utilizan para
Más detallesTema 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 detallesProgramació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 detallesTema 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 detallesUNIVERSIDAD 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 detallesAlgoritmos 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 detallesArboles 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 detallesDefinició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 detallesDefinició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ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES
ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas
Más detallesEstructuras 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 detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 puntos) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 (a) Escribir la secuencia de ordenación del array A por medio del algoritmo de InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8, 7, 1,
Más detallesEste material es de uso exclusivo para clase de algoritmos y estructura de datos, la
Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios libros por lo que está prohibida su impresión y distribución.
Más detallesEstructuras 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 detallesLECCION 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 detallesEstructuras 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 detallesTema 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 detallesTema 7: Árboles ESTRUCTURAS DE DATOS 1
Tema 7: Árboles ESTRUCTURAS DE DATOS 1 Contenidos Definiciones Conceptos de Árboles Binarios Especificación algebraica Implementaciones Programación con Árboles Binarios Árboles Binarios de Búsqueda Introducción
Más detallesASIGNATURA: (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 detallesFrancisco 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 detallesEstructuras de Datos. Clase 20 Árboles de búsqueda. Dr. Sergio A. Gómez.
Clase 20 Árboles de búsqueda http://cs.uns.edu.ar/~sag Bahía Blanca, Argentina Motivaciones El árbol binario de búsqueda permite implementar conjuntos mapeos con un tiempo de operaciones buscar, insertar
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 fguidi@ucv.cl Árbol: definición v Árbol (del latín arbor oris): Planta perenne,
Más detallesIntroducció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 detallesTipos 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 detallesCarlos 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 detalles95.12 Algoritmos y Programación II Práctica 7: árboles
Notas preliminares 95.12 Algoritmos y Programación II Práctica 7: árboles El objetivo de esta práctica es introducir distintas clases de estructuras de datos arbóreas y algoritmos para manipularlas. Los
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Más detallesARBOLES 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 detallesARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol
Más detallesRECORRIDO EN ARBOLES
RECORRIDO EN ARBOLES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 16 de septiembre de 2008 Contenido Recorrido en árboles Definición Recorrido en
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 cdk@it.uc3m.es Java: Árboles / 1 Índice Concepto Definición no recursiva
Más detallesEl 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 detallesProgramación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario
Práctico - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Objetivos Trabajar con los tipos abstractos de datos Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario. Desarrollar y analizar
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:
Más detalles1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N 2-1 b. 2 N+1-1 c. 2 N d. 2 N+1 i.
1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N - 1 b. N1-1 c. N d. N1 i.. Dado el siguiente árbol binario: raiz Q K T D M R Y B J P W N a. Cuáles son los antecesores
Más detallesFrancisco 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 detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Más detallesEstructuras de Datos II
Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y
Más detallesÁ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 detallesSegundo 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 detallesTema 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 detallesUn árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:
Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente
Más detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa
1. Ejercicio (3,5 puntos) a) Complentar la especificación public class Galeria { LinkedList cuadrosportitulo; LinkedList cuadrosporautor; LinkedListItr itrcuadrosportitulo; LinkedListItr itrcuadrosporautor;
Más detallesIntroducció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 detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:
Más detallesEstructuras 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 detallesInterfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1
Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo
Más detallesCAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES
CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES Los árboles (en general) se utilizan para representar fórmulas algebraicas, para organizar objetos en orden de tal forma que las búsquedas sean muy eficientes
Más detallesÁrboles de Decisión Árboles de Sintaxis
Árboles de Decisión Árboles de Sintaxis Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Árboles de Decisión Árbol de Decisión Forma gráfica de
Más detallesEstructura 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 detallesRoberto Carlos Abreu Díaz. October 28, 2009
Binarios binarios Java October 28, 2009 Binarios binarios Java 1 2 Binarios 3 binarios Java Código Java para búsqueda 4 Código Java para inserción 5 Caso 1 Caso 2 Caso 3 Outline Binarios binarios Java
Más detallesExisten 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 detalles4.1 Concepto de árbol.
Apuntes Estructura de Datos Autor: Ing. Felipe Alanís González Página 1 4.1 Concepto de árbol. Una estructura de árbol es una forma de representar la JERARQUÍA de ciertos objetos en una forma gráfica.
Más detallesEDA. 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