Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la

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

Download "Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la"

Transcripción

1 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.

2 Árboles

3 Arboles Un árbol es una estructura de datos no lineal formada por un conjunto de nodos. Son estructuras jerárquicas, cada elemento puede tener diferentes siguientes elementos. El concepto de árbol implica una estructura en la que los datos se organizan de modo que los elementos de información están relacionados entre sí a través de ramas

4 Arboles Un árbol esta compuesto por un conjunto finito de elementos, llamados nodos y un conjunto finito ramas, que conectan a los nodos. En un árbol existe un nodo especial llamado raíz. Así mismo, un nodo del que sale una rama, recibe el nombre de nodo de bifurcación o nodo rama y un nodo que no tiene ramas se le llama nodo hoja

5

6 Como se aprecia en la figura cada nodo de un árbol es la raíz de algún subárbol contenido en el. El número de ramas de un nodo recibe el nombre de grado del nodo. El nivel de un nodo respecto al nodo raíz se define diciendo que la raíz tiene el nivel 0 cualquier otro nodo tiene un nivel igual a la distancia de ese nodo al nodo raíz. El máximo de los nivele se denomina altura del árbol. Es útil limitar los arboles en el sentido de que cada nodo sea a lo sumo de grado 2. De esta forma cabe distinguir entre subárbol izquierdo y subárbol derecho de un nodo. Los arboles así formados, se les llama arboles binarios.

7 Es necesario recordar: Un árbol consta de un conjunto finito de elementos, denominados nodos y un conjunto finito de líneas dirigidas llamadas ramas, que conectan a los nodos. El numero de ramas asociado con un nodo es el grado del nodo. Un árbol es una estructura recursiva (los subarboles se definen como arboles)

8 Nivel de un nodo es la distancia desde la raíz o la longitud del camino que lo conecta a la raíz. La altura de un árbol es la longitud del camino más largo que conecta la raíz a una hoja.

9 Un árbol binario es un árbol en el que ningún nodo puede tener más de dos subárboles. En un árbol binario cada nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

10 Un árbol binario es una estructura recursiva, existe un nodo denominado raíz. Cada nodo es la raíz de su propio subárbol y tiene 0, 1 o 2 hijos, que son raíces de árboles llamados subárboles derecho e izquierdo del nodo respectivamente. Un árbol binario se divide en tres subconjuntos disjuntos: {R} Nodo raíz {I 1, I 2, I n } Subárbol izquierdo de R {D 1, D 2, D n } Subárbol derecho de R

11 Imagen de un árbol binario

12 En cualquier nivel n, un árbol binario puede contener de 1 a 2 n nodos. El número de nodos por nivel contribuye a la densidad del árbol. En la siguiente figura, el árbol de raíz A contiene 8 nodos en una profundidad de 4, mientras que el árbol (B) contiene 5 nodos y una profundidad 5. Este último caso es una forma especial, denominada árbol degenerado, en el que existe un solo nodo hoja y cada nodo no hoja sólo tiene un hijo. Un árbol degenerado es equivalente a una lista enlazada.

13 La distancia de un nodo a la raíz determina la eficiencia con la que ser localizado. Si dado cualquier nodo de un nodo árbol, a sus hijos se puede llegar siguiendo sólo un camino de bifurcación o de ramas, el que conduce al nodo solicitado. los nodos a nivel 2 de un árbol sólo pueden ser llegar siguiendo un camino de sólo dos ramas del árbol. La información anterior nos conduce a una característica importante de un árbol binario, su balance o equilibrio. Para determinar si un árbol está equilibrado, se calcula su factor de equilibrio. El factor de equilibrio de un árbol binario es la diferencia en altura entre los subárboles derecho e izquierdo. Si so define la altura del subárbol izquierdo como H I y la altura del subárbol derecho como H D, entonces el factor de equilibrio del árbol B, se determina: B = H D -H I

14 Utilizando esta fórmula el equilibrio del nodo raíz los dos árboles de la figura anterior, (A) -1 y (B) 4. Un árbol está perfectamente equilibrado si su equilibrio o balance es cero y sus subárboles son también perfectamente equilibrados. Dado que esta definición ocurre raramente se aplica una definición alternativa. Un árbol binario está equilibrado si la altura de sus árboles difierenciarse en no más de uno (su factor de equilibrio es -1, 0, +1) y sus subárboles son también equilibrados. Un árbol binario está equilibrado si para cada nodo del árbol la diferencia entre la altura de la rama derecha y, rama izquierda es menor o igual que 1 (en valor absoluto).

15 Un árbol binario completo de profundidad n es un árbol en el que para cada nivel, del 0 al nivel n-1, tienen un conjunto lleno de nodos y todos los nodos hijo a nivel n ocupan las posiciones más a la izquierda del árbol. Un árbol binario, de profundidad n, completo que contiene 2n nodos a nivel n es un árbol lleno. Un árbol lleno es un árbol binario que tiene el máximo número de entradas para su altura. Esto sucede cuando el último nivel está lleno. En la figura A muestra un árbol binario completo.

16 Árbol completo de profundidad 4 El último caso de árbol es un tipo especial denominado árbol degenerado en el que hay un solo nodo hoja (E) y cada nodo no hoja sólo tiene un hijo. Un árbol degenerado es equivalente a una lista enlazada.

17 el árbol de la figura (a) es un árbol degenerado y (b) corresponde con uno lleno.

18 Los árboles binarios y llenos de profundidad k+1 proporcionan algunos datos matemáticos que es necesario comentar. En cada caso, existe un nodo al nivel 0 (raíz), dos nodos (2 1 ) a nivel 1, cuatro nodos (2 2 ) a nivel 2, etc. Se puede demostrar que a través de los primeros k niveles (del nivel 0 al nivel k-1) hay 2 k -1 nodos, considerando la suma de la progresión geométrica de razón 2: k-1 = 2 k -1

19 A nivel k, el número de nodos adicionados para un árbol completo está en el rango de un mínimo de 1 a un máximo de 2 k (lleno). Con un árbol lleno, el número de nodos es: k k+1-1 El número de nodos n en un árbol binario completo de profundidad k+1 (del nivel 0 al nivel k) cumple la inigualdad: 2 k < n < 2 k+1-1 < 2 k+1 Aplicando logaritmos a la desigualdad anterior: k < log 2 (n) < k + 1

20 Se deduce que la altura o profundidad de un árbol binario completo de n nodos es: H = Log 2 n + 1 (parte de Log 2 n + 1 Por ejemplo, un árbol lleno de profundidad 4 (niveles 0 a 3) tiene = 15 nodos.

21 Existen otros conceptos que definen las características del árbol, en relación a su tamaño: Orden: es el número potencial de hijos que puede tener cada elemento de á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. Grado: el número de hijos que tiene el elemento con más hijos dentro del árbol.

22 Nivel: se define para cada elemento del árbol como la distancia a la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos uno. Así sucesivamente. Altura: la altura de un árbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un árbol puede considerarse a su vez como la raíz de un árbol, también podemos hablar de altura de ramas.

23 Estructura de un Árbol Binario La estructura de un árbol binario se construye con nodos. Cada nodo debe contener el campo dato (datos a almacenar) y dos campos apuntador, uno al subárbol izquierdo y otro al subárbol derecho, que se conocen como apuntador izquierdo (izquierdo, izdo.) y apuntador derecho (derecho, dcho.) respectivamente. Un valor NULL indica un árbol vacío.

24 El algoritmo correspondiente a la estructura de un árbol es el siguiente: Nodo subarbolizquierdo datos subarbolderecho Fin Nodo <apuntador a Nodo> <Tipodato> <apuntador a Nodo>

25 La figura muestra un árbol binario y su estructura en nodos:

26 Diferentes tipos de representaciones en C Los nodos se pueden representar con un de struct. Suponiendo que el nodo tiene tres campos Datos, Izquierdo (apuntador subárbol izquierdo) y Derecho (apuntador a subárbol derecho): Representación 1 typedef struct nodo *puntero_arbol; struct nodo { } int datos; puntero_arbol hijoizdo, hijodcho;

27 Representación 2 typedef int TipoElemento; es el tipo de los datos; puede ser cualquier tipo ya definido. struct Nodo { }; TipoElemento dato; struct Nodo *izdo, *dcho; typedef struct Nodo ElementoDeArbolBin; typedef ElementoDeArbolBin *ArbolBinario;

28 Creación de un Árbol Binario A partir del nodo raíz de un árbol es posible llegar a los demás nodos del árbol; por ello el apuntador que permite llegar al árbol es el que referencia al raíz. La rama izquierda y derecha son a su vez árboles binarios que tienen su raíz, y así recursivamente hasta llegar a las hojas del árbol. La formación del árbol pasa por la creación de cada uno de los nodos y el enlace con el correspondiente nodo padre. Para crear un nodo de un árbol binario, se reserva memoria para el nodo, se asigna el dato al campo de datos y se inicializa los apuntadores izdo y dcho a NULL.

29 ArbolBinario crearnodo (TipoElemento x) { ArbolBinario a; a = (ArbolBinario) malloc (sizeof(nodo)); a -> dato = x; a -> dcho = a -> izdo = NULL; return a; } La función nuevoarbol ( ) crea un árbol cuya raíz es un nodo nuevo que tiene como campo dato y es pasado como tercer argumento. A su vez, la rama izquierda y derecha del árbol se pasan como segundo y cuarto argumento.

30 void nuevoarbol (ArbolBinario* raíz, ArbolBinario ramaizqda, TipoElementos x, ArbolBinario ramadrcha) { } *raíz = crearnodo(x); (*raiz) -> izdo = ramaizda; (*raiz) -> dcho = ramadrcha; Como ejemplo: se establece un árbol binario de cadenas de caracteres, siguiendo un esquema secuencial y utilizando la estructura auxiliar Pila:

31 ArbolBinario raiz, al, a2; Pila pila; nuevoarbol(&al, NULL, "Maria", NULL); nuevoarbol(&a2, NULL, "Rodrigo", NULL); nuevoarbol(&raiz, al, "Esperanza", a2); insertar(&pila, raiz); nuevoarbol(&al, NULL, "Anyora", NULL); nuevoarbol (&a2, NULL, "Abel",NULL); nuevoarbol (&raiz, al', "M Jesus", a2) ; insertar(&pila, raiz) a2 = quitar(&pila); al = quitar(&pila); nuevoarbol (&raiz, al, "Esperanza", a2) ;

32

33 Operaciones en Árboles Binarios Es necesario que árbol binario exista, para poder realizar las operaciones sobre el. El hacer uso de una operación u otra dependerá de la aplicación que se le quiera dar al árbol. Las operaciones típicas en árboles binarios son: Determinar su altura. Determinar su número de elementos. Determinar el número de nodos hoja. Hacer una copia. Visualizar el árbol binario en pantalla. Determinar si dos árboles binarios son idénticos. Borrar (eliminar el árbol). Si es un árbol de expresión", evaluar la expresión. Si es un árbol de expresión, obtener la forma de paréntesis de la expresión.

34 Las operaciones se pueden realizar recorriendo el árbol binario de un modo sistemático. El recorrido de un árbol es la operación de vista al árbol, o lo que es lo mismo, la visita a cada nodo del árbol una vez y sólo una. El recorrido de un árbol es necesario en muchas ocasiones, por ejemplo si se quiere ver la información contenida en cada nodo. Existen diferentes formas de recorrer un árbol.

35 Profundidad y altura de un árbol binario La profundidad de un árbol binario es una característica que se necesita conocer con frecuencia durante el desarrollo de una aplicación con árboles. La función profundidad ( ) determina la profundidad de un árbol binario. Para ello tiene un parámetro que es un apuntador a la raíz del árbol. El caso más sencillo de cálculo de la profundidad es cuando el árbol está vacío (raiz == NULL, o bien,! raiz) en cuyo caso la profundidad es 0. Si el árbol no está vacío, cada subárbol debe tener su propia profundidad, por lo que se necesita evaluar cada una por separado. Las variables profundidadi, profundidadd almacenan las profundidades de los subárboles izquierdo y derecho respectivamente.

36 La altura es un concepto similar al de profundidad de un árbol. Un árbol que tiene nodo raíz, se considera que su altura es 1, la altura del árbol: es 2, y la altura del árbol: es 4. Por último, si la altura de un árbol con un nodo es 1, la altura de un árbol vacío (el puntero es NULL) es 0.

37 Función que determina la altura de un árbol binario de manera recursiva. Se considera que la altura de un árbol vacío es 0; si no está vacío, la altura es 1 + máximo entre las alturas de rama izquierda y derecha. int altura(arbolbinario r) { if (r == NULL) return 0; else return (1 + max(altura(r->izdo), altura(r->dcho))); }

38 Número de hojas de un árbol binario Muchas aplicaciones se necesita recorrer los nodos de un árbol pero sin tomar en cuenta un orden de recorrido preestablecido. La operación que determina el número de nodos que no tienen descendientes visita cada nodo del árbol comprobando si tiene descendientes, es decir, si es un nodo hoja. La operación con la función contarhojas (); el nodo es hoja sí su rama izquierda como derecha están a NULL, para visitar cada uno de los nodos se utiliza el recorrido en preorden. void contarhojas(arbolbinario r, int* nh) { if (r!= NULL) { contarhojas(r -> izdo, nh); contarhojas(r -> dcho, nh); /* procesar raíz: determinar si es hoja */ if (r->izdo= =NULL && r->dchoa==null) (*nh)++; } }

39 Eliminar los nodos de un árbol binario Esta operación libera todos los nodos del árbol; se visita cada uno de los nodos para borrar el nodo con la función free( ). El recorrido del árbol se hace de tal forma que asegura la liberación de la memoria ocupada por un nodo después de haber liberado su rama izquierda y derecha. La función eliminarbol(), antes de liberar el nodo se escribe el dato (se supone de tipo entero). void eliminarbol(arbolbinario r) { if (r!= NULL) { eliminarbol(r -> izdo); eliminarbol (r -> dcho); printf ("\tnodo borrado: %d ",r -> dato); free(r) ; } }

40 Árboles de Expresión Es una secuencia de tokens (componentes de léxicos que siguen unas reglas establecidas). Un token puede ser o bien un operando o bien un operador. La figura representa la expresión infija a * (b + c ) + d junto a su árbol de expresión. El nombre de infija es debido a que los operadores se sitúan entre los operandos. En una primera observación vemos que los paréntesis de la expresión no aparecen en el árbol y esto resulta muy interesante para la evaluación de la expresión. Un árbol de expresión es un árbol binario con las siguientes propiedades: Cada hoja es un operando. Los nodos raíz y nodos internos son operadores. Los subárboles son subexpresiones en las que el nodo raíz es un operador.

41 Árboles de Expresión Es una secuencia de tokens (componentes de léxicos que siguen unas reglas establecidas). Un token puede ser o bien un operando o bien un operador. La figura representa la expresión infija a * (b + c ) + d junto a su árbol de expresión. El nombre de infija es debido a que los operadores se sitúan entre los operandos. En una primera observación vemos que los paréntesis de la expresión no aparecen en el árbol y esto resulta muy interesante para la evaluación de la expresión. Un árbol de expresión es un árbol binario con las propiedades: 1. Cada hoja es un operando. 2. Los nodos raíz y nodos internos son operadores. 3. Los subárboles son subexpresiones en las que el nodo raíz es un operador.

42 Los árboles binarios se usan para representar expresiones en memoria; esencialmente, en compiladores de lenguajes de programación. Se muestra el árbol binario de expresión de (a + b) * c. Note: que los paréntesis no se almacenan en el árbol pero están implicados en la forma del árbol

43 Si todos los operadores tienen dos operandos, se puede representar una expresión con un árbol binario cuya raíz contiene un operador y cuyos subárboles izquierdo y derecho son los operandos izquierdo y derecho. Cada operando puede ser una letra (x, y, a, b, etc.) o una subexpresión representada como un subárbol. En la figura se puede ver cómo el operador que está en la raíz es *, su subárbol izquierdo representa la subexpresión (x + y) y su subárbol derecho representa la subexpresión (a - b). El nodo raíz delsubárbol izquierdo contiene el operador (+) de la subexpresión izquierda y el nodo raíz del subárbol derecho contiene el operador (-) de la subexpresión derecha. Todos los operandos letras se almacenan en nodos hojas. Árbol de expresión (x + y) * (a - b).

44 Reglas para la Construcción de Árboles de Expresión Los árboles de expresiones se usan para evaluar expresiones usadas en programas. El algoritmo más sencillo para construir un árbol de expresión es aquel que lee una expresión completa que contiene paréntesis en la misma. Una expresión con paréntesis es aquella en que: La prioridad se determina sólo por paréntesis. La expresión completa se sitúa entre paréntesis. A fin de ver la prioridad en las expresiones, considérese la expresión, a * c + e I g - (b + d) Los operadores con prioridad más alta son * y /; es decir, (a * c) + (e I g) - (b + d) Los operadores que siguen en orden de prioridad son + y -, que se evalúan de izquierda a derecha. Por consiguiente, se puede escribir, ((a * c) + (e I g)) - (b + d) Por último la expresión completa entre paréntesis será, (((a*c) + (e/g)) - (b+d))

45 El algoritmo para la construcción de un árbol de expresión se expresa en los siguientes pasos: La primera vez que se encuentra un paréntesis a izquierda, crea un nodo y lo hace en el nodo raíz. Se llama a éste, el nodo actual y se sitúa su apuntador en una pila. Cada vez que se encuentre un nuevo paréntesis a izquierda, crear un nuevo nodo. Si el nodo actual no tiene un hijo izquierdo, hacer al nuevo nodo el hijo izquierdo; en caso contrario, se crea el hijo derecho. Hacer el nuevo nodo el nodo actual y situar su apuntador en la pila.

46 Cuando se encuentra un operando, crear un nuevo nodo y asignar el operando a su campo de datos. Si el nodo actual no tiene un hijo izquierdo, crea al nuevo nodo el hijo izquierdo; en caso contrario, crea el hijo derecho. Cuando se encuentra un operador, sacar un apuntador de la pila y situar el operador en el campo datos del nodo del apuntador. Ignora los paréntesis derecho y blancos.

47 Recorrido de un árbol Para consultar los datos almacenados en un árbol se necesita recorrer el árbol o visitar los nodos del mismo. Al contrario que las listas enlazadas, los árboles binarios no tienen un primer valor, un segundo valor, tercer valor, etc. Se puede afirmar que el raíz viene el primero, pero quién viene a continuación? Existen diferentes métodos de recorrido de árbol ya que la mayoría de las aplicaciones binarias son bastante sensibles al orden en el que se visitan los nodos, de forma que será necesario definir el tipo de recorrido. Un recorrido de un árbol binario requiere que cada nodo del árbol sea procesado (visitado) una vez y sólo una, en una secuencia predeterminada. Existen dos enfoques generales para la secuencia de recorrido, profundidad y anchura.

48 En el recorrido en profundidad, el proceso exige un camino desde el raíz a través de un hijo, al descendiente más lejano del primer hijo antes de proseguir a un segundo hijo. En otras palabras, en el recorrido en profundidad, todos los descendientes de un hijo se procesan antes del siguiente hijo. En el recorrido a lo ancho, el proceso se realiza horizontalmente desde el raíz a todos sus hijos, y enseguida a los hijos de sus hijos y así sucesivamente hasta que todos los nodos han sido visitados. En este recorrido cada nivel se procesa totalmente antes de que pase al siguiente nivel. Dado un árbol binario que consta de un raíz, un subárbol izquierdo y un subárbol derecho se pueden definir tres tipos de secuencia de recorrido en profundidad.

49

50 Recorrido en Preorden El recorrido preorden 2 (NID) conlleva los siguientes pasos, en los que el raíz va antes que los subárboles: Recorrer el raíz (N) Recorrer el subárbol izquierdo (I) en preorden. Recorrer el subárbol derecho (D) en preorden. Regla( En el recorrido preorder el raíz se procesa antes que-los subárboles izquierdo y derecho.) Dado las características recursivas de los árboles y la definición recursiva del recorrido, el algoritmo tiene naturaleza recursiva. Primero, se procesa la raíz, a continuación el subárbol izquierdo y a continuación el subárbol derecho. Para procesar el subárbol izquierdo, se hace una llamada recursiva al recorrido preorden y luego se hace lo mismo con el subárbol derecho.

51 Preorden

52 Recorrido en Inorder (orden) El recorrido en orden (inorder) visita primero el subárbol izquierdo, después el raíz y a continuación el subárbol derecho. El significado de in es que la raíz se procesa entre los subárboles. Sí el árbol no está vacío, el método implica los siguientes pasos: 1. Recorrer el subárbol izquierdo,(i)en inorden. 2. Visitar el nodo raíz (N). 3. Recorrer el subárbol derecho (D) en inorden.

53 En el árbol de la figura siguiente, los nodos se han numerado en el orden en que son visitados durante el recorrido inorden. El primer subárbol recorrido es el subárbol izquierdo del nodo raíz (árbol cuyo nodo contiene la letra E). Este subárbol consta de los nodos B,D y E, es a su vez otro árbol con el nodo B como raíz, por lo que siguiendo el orden IND, se visita primero D, a continuación B (nodo raíz) y por último E (derecha).

54 Después para el subárbol izquierdo se visita el nodo raíz A y por último se visita el subárbol derecho que consta de los nodos C,F y G. Siguiendo el orden IND para el subárbol derecho, se visita primero F, después C (nodo raíz) y por último G. Entonces el orden del recorrido inorden del árbol de la figura, es D-B-E-A-F-C-G.

55 Recorrido en Postorden El recorrido postorden (IDN) visita el nodo raíz (post) después de que los subárboles izquierdo y derecho se han visitados. Se inicia situándose en la hoja más a la izquierda y se procesa. Después se visita su subárbol derecho. Por último se visista el nodo raíz. Las etapas del algoritmo son: 1. Recorrer el subárbol izquierdo (I) en postorden. 2. Recorrer el subárbol derecho (D) en postorden. 3. Visitar el nodo raíz (N) Recorriendo en postorden el árbol de la figura siguiente se visita primero el subárbol izquierdo de A. Este subárbol lo forman de los nodos B,D y E; siguiendo el orden IDN, se visitará primero D(izquierdo), luego E (derecho) y por último B(nodo). Enseguida se visita el subárbol derecho de A que esta formado por los nodos C, F y G. Siguiendo el orden IDN para este árbol, se visita primero F (izquierdo), después G(derecho) y por último C (nodo). Al final se visita el nodo raíz A.

56 La secuencia de nodos que determina el recorrido en postorden del árbol de la figura, es: D-E-B-F-G-C-A.

57 Árbol Binario de Búsqueda Los árboles binarios ordenados se disponen siguiendo un cierto orden, respecto de un campo clave, de tal forma que para cualquier subárbol, los nodos de la rama izquierda son menores que el raíz, y los nodos de la rama derecha son mayores que el raíz. Los elementos de un árbol ordenado pueden ser eficientemente localizados, se utiliza un algoritmo de búsqueda binaria similar al empleado en arrays. Un árbol binario de búsqueda es aquel en el que dado un nodo, todos los datos del subárbol izquierdo son menores que el dato de ese nodo, mientras que todos los datos del subárbol derecho son mayores que el dato del nodo.

58 Creación de un Árbol Binario de Búsqueda El árbol binario de búsqueda se construye teniendo en cuenta las siguientes supuestos: El primer elemento se utiliza para crear el nodo raíz del árbol. Los valores que guarda cada nodo del árbol deben ser tales que pueda existir un orden. Es decir, debe existir un campo (entero, real, carácter, cadena) respecto del cual se establece el orden del árbol. En cualquier nodo todos los valores del subárbol izquierdo del nodo son menores al valor del nodo. De modo similar, todos los valores del subárbol derecha deben ser mayores que los valores del nodo. Con estas condiciones es sencillo probar que el recorrido inorden del árbol produce una secuencia de valores en orden ascendente. Por ejemplo, el árbol de búsqueda de caracteres, los tres tipos de recorrido para el árbol:

59 inorden preorden postorden C E F G N P R T N E C G F P T R C F G E R T P N

CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES

CAPÍ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

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

Estructura 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 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

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

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

Tema 09: TAD Árbol binario

Tema 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 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

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

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

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

A) 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 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

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

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

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

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

Estructura 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

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

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

Estructura de Datos. Índice

Estructura 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 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. 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

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Un á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 detalles

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

Tema: 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

Diseño y Análisis de Algoritmos con Java(I Sem. 2004) Prof. Dr.Eric Jeltsch F.

Diseñ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 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

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

Á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

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

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 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 detalles

Programación II Tema 5. Árboles binarios

Programació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 detalles

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

Á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 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 Á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 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

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

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

TEMA 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 detalles

Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas

Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas Listas Enlazadas que está prohibida su impresión y distribución. Estructuras de datos dinámicas Contrariamente a las estructuras de datos estáticas (arreglos-listas, vectores y tablas- y estructuras) en

Más detalles

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

Estructura 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 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

PROGRAMA EDUCATIVO INFORMATICA ADMINISTRATIVA

PROGRAMA 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 detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

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

RECORRIDO EN ARBOLES

RECORRIDO 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

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

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

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas

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

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

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

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

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

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

Á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

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

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

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

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

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»

Más detalles

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

Á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

Tema 7: Árboles ESTRUCTURAS DE DATOS 1

Tema 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 detalles

Ejercicios del Tema 3 Estructuras jerárquicas: Árboles

Ejercicios del Tema 3 Estructuras jerárquicas: Árboles ALGORITMOS Y ESTRUCTURAS DE DATOS II Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas Ejercicios del Tema 3 Estructuras jeráruicas: Árboles Árboles n-arios 1.

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

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES 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 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. 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

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

1. 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 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 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

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

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

Estructuras de Datos ARBOLES Y GRAFOS

Estructuras 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 detalles

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

Programació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 detalles

Lógica: Algoritmo: Archivo: Base de datos: Bit:

Lógica: Algoritmo: Archivo: Base de datos: Bit: Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones

Más detalles

Tipos Recursivos de Datos

Tipos Recursivos de Datos 1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),

Más detalles

Programación de sistemas Árboles

Programació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 detalles

Segunda parte de árboles

Segunda parte de árboles Segunda parte de árboles mat-151 Argumentos y constructores por copia Argumentos y constructores por copia Recorrido de árboles Dado un apuntador a un árbol, queremos procesar cada nodo en el árbol de

Más detalles

Descubrir los árboles como paradigma de los tipos Recursivos de Datos

Descubrir los árboles como paradigma de los tipos Recursivos de Datos TEMA 5 ÁRBOLES(*) Una de las estructuras las datos más importantes y prominentes que existen es el árbol. No es un árbol en el sentido botánico de la palabra, sino uno de naturaleza más abstracta. Todos

Más detalles

Tema 5. Tipos Abstractos de Datos

Tema 5. Tipos Abstractos de Datos . E.U.Politécnica. I.T.Industrial (Electricidad) Tema 5. Tipos Abstractos de Datos. E.U. Politécnica Curso 2004-2005 Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga José Luis

Más detalles

Árboles de Decisión Árboles de Sintaxis

Á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 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

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

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

Tema 7: Árbol Binario

Tema 7: Árbol Binario Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema 7: Árbol Binario En el árbol binario se combina lo mejor del array (acceso rápido a elementos,

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

Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial

Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial (Facultad de Informática) Curso 00 0 Estructuras de Datos y Algoritmos (FI-UPV) Curso 00 0 Árboles. Si la acción P fuera escribir

Más detalles

95.12 Algoritmos y Programación II Práctica 7: árboles

95.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 detalles

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

INGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES 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

Más detalles

Programación II Arboles Binarios(AB)

Programació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 detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

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

Profesor: José Miguel Rubio L.

Profesor: José Miguel Rubio L. Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl

Más detalles

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

Estructura de Datos. Temario Unidad VI. Árboles Árboles AVL Estructura de Datos Árboles Árboles VL Temario Unidad VI 6.1 Definición operaciones 6.2 Implementación 6.3 Recorrido en Árboles inarios 6.4 Árboles VL su implementación 6.5 Árboles n-arios 6.6 Árboles

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

Árboles n-arios de búsqueda. Lección 16

Árboles n-arios de búsqueda. Lección 16 Árboles n-arios de búsqueda Lección 16 Definiciones Los árboles n-arios de búsqueda (árboles de búsqueda múltiples o multicamino) son árboles de grado n definidos de la forma: si el árbol A es vacío, entonces

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

Capitulo VI Árboles y Grafos

Capitulo VI Árboles y Grafos Capitulo VI Árboles y Grafos Tu vida no cambia cuando cambia tu jefe, Cuando tus amigos cambian, Cuando tus padres cambian, Cuando tu pareja cambia. Tu vida cambia, cuando tu cambias, Eres el único responsable

Más detalles

Clase 26. Introducción a los árboles. Árboles

Clase 26. Introducción a los árboles. Árboles Clase 26 Introducción a los árboles Árboles Árbol es el nombre que se le da a un grupo versátil de estructuras de datos. Se pueden utilizar para implementar un número de interfaces abstractas, incluida

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