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

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

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

Transcripción

1 Estructura de Datos Árboles Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, ÍNDIE DE ONTENIDOS oncepto de árbol. Terminología básica Árboles generales Árboles inarios () Árboles inarios de úsqueda () VL Tries Árboles 2-3 Árboles multicamino Árboles Árboles + y * 2 Árboles Los TD s estudiados hasta ahora, son de naturaleza lineal, o unidimensional. En los tipos abstractos de datos lineales existen exactamente un elemento previo y otro siguiente (excepto para el primero y el último, si los hay). En las estructuras no lineales, como conjuntos o árboles, este tipo de secuencialidad no existe, unque en los árboles existe una estructura jerárquica, de manera que un elemento tiene un solo predecesor, pero varios sucesores. 3

2 Árboles Ejemplos de aplicaciones con estructura de tipo árbol: 4 Árboles Ejemplos de aplicaciones con estructura de tipo árbol: 5 Árboles Ejemplos de aplicaciones con estructura de tipo árbol: 6

3 Árboles En el campo de la ciencia de la computación existen situaciones en que las representaciones lineales son inadecuadas, tanto en el sentido conceptual como práctico. 7 Árboles En Informática constituyen una de las estructuras más utilizadas, con aplicaciones desde los árboles sintácticos utilizados para la representación y/o interpretación de términos de un lenguaje o expresiones aritméticas, pasando por los árboles de activación de procedimientos recursivos, hasta la representación de datos que se desea mantener ordenados con un tiempo de acceso relativamente bajo. En general, se usarán árboles cuando se quiera representar información jerarquizada. 8 Árboles Se utilizan en distintos ámbitos, en el área de la Informática: Sistemas de rchivos: Estructura de directorios y subdirectorios en forma de árbol para organizar la información. Esquemas para el desarrollo de algoritmos, tales como: programación dinámica, esquema divide y vencerás, etc. Diagrama de clases JV 9

4 oncepto de árbol Otras áreas: estructura de un libro, diagrama organizativo... MiEmpresa Ventas Producción I+D ES Internacional Portátiles Sobremesa Europa sia mérica 10 Definiciones de árbol Árbol: colección de elementos, llamados nodos, uno de los cuales es la raíz, junto con una relación, padre-hijo, que coloca a todos los nodos en una estructura jerárquica. Un árbol es una estructura de datos no lineal y homogénea en el que cada nodo puede tener varios nodos sucesores, pero tan sólo puede tener un nodo antecesor. 11 Definiciones de árbol Árbol dirigido: estructura jerárquica, organizada y dinámica: Jerárquica: los componentes están en niveles distintos. Organizada: importa la forma en que esté dispuesto el contenido. Dinámica: forma, tamaño y contenido pueden variar durante la ejecución. Un árbol se define recursivamente como: O vacío, O con un componente raíz, al que están unidos un número finito de árboles disjuntos. 12

5 Definiciones de árbol Los nodos se clasifican dependiendo de su posición dentro del árbol en: Raíz: Elemento mínimo de un árbol. Nodo intermedio (o interno): ualquier nodo predecesor de una hoja, y sucesor de la raíz. Nodo terminal u hoja (o externo): Nodo que no tiene sucesores. 13 Definiciones de árbol Las dos definiciones más comunes son las de árbol general y la de árbol de orden N: Un árbol general con nodos de un tipo T es un par (r, L ) formado por: un nodo r (la raíz) y una lista (si se considera relevante el orden de los subárboles) o un conjunto (si éste es irrelevante) L (bosque), posiblemente vacío, de árboles generales del mismo tipo (subárboles de la raíz). Nota: no existe el árbol vacío, sino la secuencia vacía de árboles generales. 14 oncepto de árbol Los árboles se basan en el concepto de nodo. Se denomina nodo a cualquier tipo cuyos elementos son registros formados por un campo datos y un número dado de apuntadores o enlaces. Un árbol se caracteriza por estar formado por una serie de nodos conectados por una serie de aristas que verifican que: hay un único nodo raíz cada nodo, excepto la raíz, tienen un único padre hay un único camino (desde la raíz hasta cada nodo) 15

6 oncepto de árbol Un árbol de algún tipo T es: una estructura vacía, o un nodo de tipo T con un número finito de estructuras árbol de tipo T disjuntas llamadas subárboles. <arbol> ::= nulo <nodo> <nodo> ::= <info>{<arbol> Puede estar ordenado o no. 16 Terminología Raíz: único nodo sin padre Nodo interno o interior: tiene al menos un hijo Nodo hoja (externo): no tiene hijos Subárbol: árbol formado por un nodo y sus descendientes Descendiente directo: hijo Descendientes: hijo, nieto... E F I J K G H subárbol D 17 Terminología Nodo Padre de un nodo es aquel que apunta al nodo. En un árbol cada nodo sólo puede tener un padre. Nodo Hijo es cualquier nodo apuntado por el nodo padre. Un nodo puede tener varios hijos. Nodo Raíz es el único nodo del árbol que no tiene padre. En la representación utilizada, el nodo raíz es el que se encuentra en la parte superior del árbol. 18

7 Terminología Si existe un camino del nodo n 1 a n 2, entonces n 2 es descendiente de n 1 y n 1 es antecesor o ancestro de n 2. La raíz es el único nodo sin antecesor. D E F G H I J K 19 Terminología amino n 1,..., n k : secuencia de nodos en un árbol tal que n i es padre de n i+1 para 1 i < k. camino(,k)={,,f,k camino(,k)={ Largo del camino: número de enlaces que hay desde el primer nodo hasta el último: número de nodos menos uno. Rama: camino desde la raíz a una hoja. D E F G H I J K 20 Terminología n n 1 T 1 n 2 T n k T k n es la raíz y T 1,...,T k son subárboles de la raíz, donde los nodos n 1,..., n k son conocidos como hijos de n. Note que estos nodos son las raíces de los subárboles T i. 21

8 Terminología Grado de un nodo: número de descendientes directos (número de subárboles - hijos). El grado de las hojas es cero. Grado del árbol: mayor grado de sus nodos (número máximo de hijos que tienen los nodos del árbol). Una lista es un árbol de grado uno. Árbol binario: árbol de grado 2 ada nodo tiene a lo mas dos descendientes directos Árbol multicamino: árbol de grado mayor que 2 ada nodo puede tener n descendientes directos 22 Terminología Profundidad de un nodo: es el número de predecesores, largo del único camino desde la raíz al nodo. Ejemplo: profundidad() = 0 profundidad(h) = 2 D E F G H I J K 23 Terminología ltura del árbol: profundidad máxima de los nodos,. longitud del camino mas largo (máximo número de enlaces) de las ramas del árbol. Ejemplo: altura = 3 Las ramas --F-K, --F-I y --F-J son las más largas E F G H D I J K 24

9 Terminología Nivel de un nodo, es el número de nodos del camino desde la raíz hasta el nodo. Por convención al nodo raíz del árbol se le considera el nivel cero del árbol. osque colección de dos o más árboles : D G E H F 25 Terminología Árbol completo: si todo nodo no terminal tiene asociado exactamente el grado del árbol Terminología Árbol lleno: si es completo y todas sus hojas están en el mismo nivel También se puede definir como el árbol en el que la longitud del camino más largo y la del más corto desde cualquier nodo, son iguales. 27

10 Terminología Árbol casi-lleno: árbol lleno hasta el penúltimo nivel y las hojas que están en el último nivel se ubican lo más a la izquierda posible Terminología Árbol perfectamente balanceado: El número de nodos de cada subárbol de cada nodo interno, no varía en más de uno. equilibrado sinónimo de balanceado. Árbol balanceado en altura: árbol cuyos subárboles tienen alturas que difieren a lo más en una unidad y también son equilibrados en altura. Árbol degenerado: cada nodo sólo tiene un subárbol. Equivale a una lista. 29 Terminología Árboles Isomorfos:dos árboles son isomorfos si poseen una estructura idéntica, pero no necesariamente los mismos elementos

11 Terminología Árboles semejantes: árboles que poseen los mismos elementos, pero no necesariamente la misma estructura. Los elementos no deben estar necesariamente en el mismo orden Definición TD Árbol Tipos de datos: T: Estructura de árbol v: objeto de tipo rótulo o dato. n: objeto tipo nodo. Funciones: Padre(n, T) n Entrega el nodo padre del nodo n en el árbol T. Hijo_izquierdo(n,T) n Devuelve el hijo que está más a la izquierda del nodo n en el árbol T. 32 Definición TD Árbol Hermano_derecho(n,T) n Devuelve el hermano que está a la derecha del nodo n en el árbol T. Rótulo(n,T) v Entrega el rótulo o dato del nodo n. Raiz(T) n Entrega el nodo raíz del árbol T. nular(t) T Hace que el árbol T sea nulo. 33

12 Definición TD Árbol Recorridos uando un TD se define mediante relaciones entre sus componentes, los recorridos se pueden hacer siguiendo esas relaciones. uando la relación es con varios aparecen diversas formas de recorrerlos. 34 Definición TD Árbol Recorridos Hay dos formas de recorrido claramente distinguibles en los árboles, el recorrido en profundidad y el recorrido en anchura. El recorrido en anchura visita los nodos por niveles: 35 Definición TD Árbol Recorridos Los recorridos en profundidad se pueden hacer fundamentalmente de tres maneras: Preorden: onsiste en operar primero la raíz, luego hacer una visita en Preorden del hijo izquierdo y después igualmente del hijo derecho. Enorden: onsiste en visitar primero en Enorden el hijo izquierdo, después operar la raíz y finalmente el hijo derecho. Posorden: onsiste en visitar primero en los hijos derecho e izquierdo en Posorden, y después operar la raiz 36

13 rboles - Representaciones Representación como grafo: D E F G 37 rboles - Representaciones Formas básicas de representar los árboles : rreglos. La representación hijo más izquierdo y hermano derecho. La representación hijo izquierdo, hijo derecho. Listas generalizadas. 38 rboles Implementaciones rreglos. onsiste en un arreglo unidimensional, por ejemplo, en que: [i] es un puntero al padre del nodo i. Si [i] = -1, entonces es la raíz. Nota: qué nodo va más a la izquierda? Una posibilidad es que el orden de izquierda a derecha sea dado según el orden en que están almacenados los nodos en el arreglo. 39

14 rboles Implementaciones a b c 3 d e f g h i j k l rboles Implementaciones Listas de hijos. Para cada nodo se forma una lista con los hijos. Dado que los nodos no tienen igual número de hijos, es conveniente usar listas enlazadas, con eso se pueden implementar árboles con un número arbitrario de hijos. En este caso, queda bien definido el orden de los hijos (de izquierda a derecha), que corresponde al orden en la lista. En la implementación, se define un arreglo de punteros, en que p[i] es un puntero a la lista de hijos del nodo i. 41 rboles Implementaciones Ejemplo: 0 a b c d e f g h i j k l b c d e f g h i j k l 42

15 rboles Implementaciones Hijo más izquierdo y hermano derecho. omo puede haber más de un árbol en un arreglo, otra alternativa para implementar esta estructura es mediante nodos y punteros: uno destinado al hijo más a la izquierda y otro al hermano derecho. Hijo Izquierdo Dato Hermano Derecho 43 rboles Implementaciones Ejemplo; para el árbol, se tiene: Hijo_izq info Hno_der D D E E 44 rboles Implementaciones Hijo izquierdo, Hijo derecho Esta representación se basa en una estructura de nodos con dos punteros : Uno destinado al hijo izquierdo y Otro al hijo derecho. Declaración : struct nodor { telemento info; struct nodor* izq; struct nodor* der; ; typedef nodor trbol; izq info der 45

16 rboles Implementaciones Ejemplo; para el árbol, se tiene: Hijo_izq info Hijo_der D D 46 ROLES Tipos De acuerdo al número de arcos que parten de cada nodo en un árbol, este se puede clasificar en : Árboles Generales, Árboles inarios, Árboles de úsqueda inarios, Árboles VL Árboles2-3, Árboles2-3-4, Árboles Rojo-Negro, Árboles, etc. 47 Árbol binario () Es un árbol de grado 2 ada nodo tiene 0, 1 o 2 descendientes directos: el hijo izquierdo y el hijo derecho (que a su vez son árboles binarios). D E F G H I 48

17 Árbol binario <arbol> ::= nulo <nodo> <nodo> ::= <izq> <info> <der> <izq> ::= <arbol> <der> ::= <arbol> izq info der D E F G H I 49 Árbol binario plicación: expresiones aritméticas, árboles de decisión, búsqueda () En algunos casos se exige que el árbol sea completo = todo nodo interno tiene dos descendientes. Árbol binario completo Árbol binario no completo 50 Árbol binario Ejemplo: expresiones aritméticas nodo interno: operadores nodos hoja: operandos Ejemplo: 2(a-1)+3b + 2 a 1 3 b 51

18 Árbol binario Ejemplo de aplicación: árboles de decisión nodo interno: preguntas con respuesta si/no nodos hoja: decisiones Ejemplo: Dónde comemos? omida rápida? Sí on café? No ara? Sí No Sí No Starbucks McDonalds orderio PiccolaItalia 52 Árbol binario: propiedades Notación n: número de nodos e: número de nodos hoja i: número de nodos internos h: altura del árbol Propiedades e 2 h h i 2 h -1 log 2 (n+1)-1 h (n-1)/2 2h+1 n 2 h+1-1 Si es completo: e h+1 e=i+1 53 El TD rin Tipos de datos : struct rin Funciones: rearrbol( ) rin rbolvacio( rin ) boolean SubrbolIzq (rin) rin SubrbolDer (rin) rin telemento(rin) telemento 54

19 Implementación de Representación Hijo izquierdo, Hijo derecho Estructura de nodos con dos punteros : Uno al hijo izquierdo (raíz del subárbol izquierdo) Otro al hijo derecho (raíz del subárbol derecho). Declaración : struct nodorin { telemento info; struct nodorin* izq; struct nodorin* der; ; typedef nodorin t; izq izq info info der der 55 EJEMPLO D E F izq info der G H D E F G H 56 rboles inarios - Implementaciones De este modo, un árbol se identifica con un puntero a su nodo raíz, a través del cual se puede acceder a sus nodos. D E F G H 57

20 rboles inarios - Implementaciones void rearrbol (t **) { * * = Null; Para crear un árbol hacer que el puntero a su nodo raíz apunte a Null. boolean rbolvacio (t *) { return ( ( == == Null); Se considera que un árbol está vacío cuando el puntero a su nodo raíz apunta a Null. 58 rboles inarios - Implementaciones void SubrbolIzq (t *; t **subizq) { *subizq = ->izq; Para acceder al subárbol izquierdo basta con acceder al puntero del hijo izquierdo del nodo raíz. void SubrbolDer (t *; t **subder) { *subder = ->der; Para acceder al subárbol derecho basta con acceder al puntero del hijo derecho del nodo raíz. 59 rboles inarios - Implementaciones void DatoRaiz (t *, telemento *d) { // // pasado como parámetro d = ->info; Para acceder al dato contenido en el nodo raíz de un árbol, basta con acceder al campo info del registro que lo representa. telemento DatoRaiz (T *) { // // retornado como valor return( ->info ); ); 60

21 Árbol binario: recorridos Tipos de recorrido en un árbol binario: In-Orden Pre-Orden Post-Orden 61 Árbol binario: recorridos Recorrido IN-ORDEN cada nodo se visita después de visitar su subárbol izquierdo y después se visita el derecho. (izq, raiz, der) Ejemplo: h i m e a in-orden: (i, e, h, a, m) 62 Recorridos en rboles inarios Inorden: primero se accede a la información del subárbol izquierdo, después la información del nodo y, por último, se accede a la información del subárbol derecho. void InOrden (t *) { if if ( (!= NULL) { InOrden(->izq); // // recorrido por la la izquierda printf("%d ",->info); // // telemento es es int int InOrden(->der); // // recorrido por la la derecha 63

22 Recorridos en rboles inarios D E F G H InOrden (IRD): D - - -G -E -H - -F 64 Árbol binario: recorridos Recorrido PRE-ORDEN primero se visita cada nodo, luego su subárbol izquierdo y finalmente el derecho (raiz, izq, der) Ejemplo: h i m e a pre-orden: (h, i, e, m, a) 65 Recorridos en rboles inarios Preorden: primero se accede a la información del nodo, después al subárbol izquierdo y después al subárbol derecho. void PreOrden (t *) { if if ( (!= NULL) { printf("%d ",->info); // // telemento es es int int PreOrden(->izq); // // recorrido por la la izquierda PreOrden(->der); // // recorrido por la la derecha 66

23 Recorridos en rboles inarios D E F G H PreOrden (RID): --D--E-G-H-F 67 Árbol binario: recorridos Recorrido POST-ORDEN cada nodo se visita después de visitar su subárbol izquierdo y después de visitar el derecho (izq, der, raiz) Ejemplo: h i m e a post-orden: (e, i, a, m, h) 68 Recorridos en rboles inarios Postorden: primero se accede a la información del subárbol izquierdo, después la del subárbol derecho y, por último, la información del nodo. void PostOrden (t *) { if if ( (!= NULL) { PostOrden(->izq); // // recorrido por la la izquierda PostOrden(->der); // // recorrido por la la derecha printf("%d ",->info); // // telemento es es int int 69

24 Recorridos en rboles inarios D E F G H PostOrden (IRD): D - -G -H -E -F Ejemplo de recorrido de Ejemplo: Recorridos en las expresiones aritméticas pre-orden: notación prefija (polaca) in-orden: notación normal (sin paréntesis) post-orden: notación polaca inversa 2 a b pre-orden: + x 2 - a 1 x 3 b in-orden: 2 x a x b post-orden: 2 a 1 - x 3 b x + Ejercicio: escribir el pseudocódigo para que el recorrido en in-orden incluya los paréntesis. 71 Reconstrucción de rboles Es posible reconstruir la estructura de un árbol dado su recorrido inorden y postorden ó inorden y preorden. inorden es imprescindible. 72

25 Reconstrucción de rboles Ejemplo : dados los siguientes recorridos InOrden : PostOrden : Reconstruir el árbol binario, que originó ambos recorridos. 73 Reconstrucción de rboles Solución : InOrden (IRD): PostOrden (IDR) : Paso 1: InOrden : Reconstrucción de rboles InOrden (IRD): PostOrden (IDR) : Paso 2: InOrden :

26 Reconstrucción de rboles InOrden (IRD): PostOrden (IDR) : Pasos 3 y 4: InOrden: Reconstrucción de rboles InOrden (IRD): PostOrden (IDR) : Paso 5 : InOrden: Reconstrucción de rboles InOrden (IRD): PostOrden (IDR) : Pasos 6 y 7: InOrden:

27 Reconstrucción de rboles InOrden (IRD): PostOrden (IDR) : Pasos 8 y 9: InOrden : Reconstrucción de rboles Finalmente : Reconstrucción de rboles Ejemplo: InOrden : PreOrden :

28 Reconstrucción de rboles Solución : InOrden (IRD) : PreOrden (RID) : Paso 1: InOrden : Solución : Paso 2: Reconstrucción de rboles InOrden (IRD) : PreOrden (RID) : InOrden: Solución : Reconstrucción de rboles InOrden (IRD) : PreOrden (RID) : Pasos 3, 4 y 5: InOrden :

29 Reconstrucción de rboles Solución: InOrden (IRD) : PreOrden (RID) : Paso 6: InOrden: Reconstrucción de rboles Solución: InOrden (IRD) : PreOrden (RID) : Pasos 7, 8 y 9: InOrden : Reconstrucción de rboles Finalmente :

30 Recorridos en amplitud (o por niveles) void voidamplitud(trbol *a) *a) { El recorrido se realiza en orden por los tola cola; cola; trbol *aux; distintos niveles del árbol,comenzando if if (a (a!=!= NULL) { en el nivel 1, que sólo contiene el nodo crearola(cola); raíz, luego el nivel 2, el 3, etc. encolar(cola, a); a); while (!colavacia(cola)) { desencolar(cola, aux); visitar(aux); //Realiza una una operación en en nodo nodo if if (aux->hizquierdo!=!= NULL) encolar(cola, aux->hizquierdo ); ); if if (aux->hderecho!= NULL) encolar(cola, aux->hderecho); 88 Ejercicios int intontarhojas (t *arb) { // // Determina el el número de de hojas en en un un árbol binario. if if (arb == == NULL) return 0; 0; else if( if( (arb ->izq == == NULL) && (arb ->der == == NULL) )) return 1; 1; else return(ontarhojas(arb ->izq) + ontarhojas(arb ->der)); 89 Ejercicios int intaltura (t *arb) { // // alcula la la altura de de un un árbol binario. if if arb == == NULL return -1; -1; else return (1+ max(altura(arb -> -> izq),altura(arb -> -> der))); 90

31 Ejercicios struct Nodo *opiar(struct Nodo *T) { // // copia rin T, T, retornando dirección de de copia struct Nodo *Q *Q =NULL; if if (T (T!!(NULL) { Q = (struct Nodo *) *) malloc (sizeof (struct Nodo)); Q -> -> dato = T -> -> dato; Q -> -> izq = opiar (T (T-> izq); Q -> -> der = opiar (T (T-> der); struct Nodo { return Q; Q; telemento info; struct Nodo *izq, *der; 91 Ejercicios int intigual (struct Nodo *S, struct Nodo *T) { // // verifica que los los árboles S y T sean iguales :: true (1) (1) int intans = 0; 0; if if ((S ((S = NULL) && (T=NULL)) ans = 1; 1; if if ((S!= NULL) && (T!=NULL)) { if if (S (S-> dato == == T -> -> dato) ans = Igual (S (S-> izq, T -> -> izq); if if (ans) ans = Igual (S (S-> der, T -> -> der); return ans; 92 Ejercicios Propuestos Escribir una función en para calcular el peso de un árbol binario. (El peso se define como el número de nodos). Escribir una función en para determinar si un elemento cualquiera pertenece a un árbol binario. Escribir una función en para calcular el número de veces que aparece un elemento en un árbol binario. 93

32 plicación Una de las aplicaciones de la correspondencia entre árboles y árboles binarios es la representación de expresiones aritméticas usando NOTION POL. Usada en compiladores, ya que es más fácil traducir de notación polaca a instrucciones de máquina. 94 plicación Para el siguiente árbol de expresión algebraica: + * E / D ** Inorden : /** * D+E (infijo) Preorden : +*/**DE (prefijo) Postorden : **/ D*E+ (postfijo) 95 Ejercicios Propuestos 1. Dibujar el árbol binario que representa las siguientes expresiones: a) a * (b + c / ((x - 1) * (y + 4))) + x * x - 24 b) a 0 + x * (a 1 + x * (a 2 + x * a 3 )) 2. Reconstruir un árbol binario a partir de los siguientes recorridos : a) Preorden: 2, 5, 3, 9, 7, 1, 6, 4, 8. Inorden: 9, 3, 7, 5, 1, 2, 6, 8, 4. b) Inorden: 5, 6, 12, 10, 1, 9, 13, 4, 8, 2, 7, 3, 11. Postorden: 6, 5, 10, 9, 1, 13, 12, 2, 8, 3, 11, 7, 4. 96

33 Ejercicios Hacer una función en que escriba todos los caminos que van desde la raíz a cada una de las hojas, suponiendo que cada nodo contiene un carácter. M Por ejemplo, en el árbol : O I deberían obtenerse las palabras: MOLER, MOL, MOK, MOT, MIRR, MIRO, MIS, MISTO y MÍSTIO. E R L K T R R O S T O I O 97 Desde árboles generales a Existe una correspondencia uno a uno entre los árboles generales y árboles binarios. Un árbol general se convierte en árbol binario: El enlace izquierdo representa al primer hijo (en el árbol general). El enlace derecho al siguiente hermano (en el árbol general). 98 Desde árboles generales a D E F G H I J K L M N O P Q 99

34 Desde árboles generales a hijo hermano D E F G H I J K L M N O P Q 100 ibliografía - Webgrafía Introduction to lgorithms, 2nd edition. ormen, T., Leiserson, h., Rivest, R. and Stein,. MIT Press Data Structures and lgorithms.. ho, J. Hopcroft, and J. Ullman. ddison-wesley, Traducido al castellano, The rt of omputer Programming. Vol. 3: Searching and Sorting. Donald E. Knuth. ddison-wesley, Massachusetts, Traducido al castellano en Ed. Reverté, arcelona. Programación Modular. ETSIT. Guión del profesor Juan Falgueras, urso Estructuras de Datos y lgoritmos, M.. Weiss, ddison- Wesley Iberoamericana, ibliografía - Webgrafía /Teoria/5._rboles_binarios.pdf Tema7_ne.pdf 102

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

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 Árboles 2-3

Estructura de Datos Árboles Árboles 2-3 Estructura de Datos Árboles 1-2-3 Árboles 2-3 Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 Arboles 1-2-3 Árbol n-ario ordenado de orden 3 Cada nodo tiene 1 ó 2 elementos 75 Nodo

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

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

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

Más detalles

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

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

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

Algoritmos y estructuras de datos

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

Más detalles

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

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, 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

ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES

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

UNIDAD 9. DATOS COMPLEJOS PILAS

UNIDAD 9. DATOS COMPLEJOS PILAS UNI 9. TOS OMPLEJOS PILS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. omo consecuencia, los elementos de una pila serán eliminados

Más detalles

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices. ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo

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 75.41

Algoritmos y Programación II 75.41 Algoritmos y Programación II 75.41 Cátedra: Lic. Gustavo Carolo Guía de Estudio Enero 2005 Indice Indice 2 Definición 3 Árbol Binario 4 Árbol General 5 Árbol AVL 5 Árbol B 6 Implementación de Binarios

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

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

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos

Más detalles

TEMA 5 El tipo grafo. Tipo grafo

TEMA 5 El tipo grafo. Tipo grafo TEMA 5 El tipo grafo PROGRAMACIÓN Y ESTRUCTURAS DE DATOS Tipo grafo 1. Concepto de grafo y terminología 2. Especificación algebraica. Representación de grafos.1. Recorrido en profundidad o DFS.2. Recorrido

Más detalles

Universidad Tecnológica Nacional Facultad Regional Buenos Aires. Gestión de Datos. Árboles

Universidad Tecnológica Nacional Facultad Regional Buenos Aires. Gestión de Datos. Árboles Universidad Tecnológica Nacional Facultad Regional Buenos Aires Gestión de Datos Árboles Ing. Enrique Reinosa Leandro R. Barbagallo Septiembre 2007 Índice Índice... 2 Introducción... 3 Formalización...

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede

Más detalles

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004 Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2

Más detalles

16 Análisis sintáctico I

16 Análisis sintáctico I 2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

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

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

Estructura de datos Colas

Estructura de datos Colas Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

14. ÁRBOLES. 14.1 Fundamentos y terminología básica

14. ÁRBOLES. 14.1 Fundamentos y terminología básica Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Estructuras de Datos Orientadas a Objetos. Pseudocódigo y aplicaciones en C#.NET. Capítulo 9.- Grafos

Estructuras de Datos Orientadas a Objetos. Pseudocódigo y aplicaciones en C#.NET. Capítulo 9.- Grafos Capítulo 9.- Grafos Cuestionario 9.1 Se pueden representar los nodos de un grafo como un conjunto de elementos 9.2 Se pueden representar los arcos de un grafo como un conjunto de tuplas 9.3 Los grafos

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

Unidad I: Introducción a las estructuras de datos

Unidad I: Introducción a las estructuras de datos Unidad I: Introducción a las estructuras de datos 1.1 Tipos de datos abstractos (TDA) Los tipos de datos abstractos (TDA) encapsulan datos y funciones que trabajan con estos datos. Los datos no son visibles

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.

INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS. INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.7 GRAFOS CONEXOS7 ÁRBOLES..7 BOSQUES DE ÁRBOLES...8 RECORRIDO DE UN GRAFO..8

Más detalles

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella 2008 1 Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2 324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Lógica y Estructuras Discretas Tutor: Antonio Rivero Cuesta Tema 5 Teoría de Grafos Conceptos Básicos Un grafo consta de: Grafo Un conjunto de nodos, Un conjunto de aristas

Más detalles

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales Estructura de Datos TDA: Listas Prof. Mauricio Solar Prof. Lorna Figueroa Parte del material fue obtenido de Lic. Claudio Barúa Primer Semestre, 2010 Indice Tipos de estructura de datos lineales Listas

Más detalles

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

Algoritmos y estructuras de datos

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

Más detalles

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.

Más detalles

Un. VI. Generador de código intermedio.

Un. VI. Generador de código intermedio. Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

TAD CONJUNTOS Y MULTICONJUNTOS

TAD CONJUNTOS Y MULTICONJUNTOS TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados

Más detalles

Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos.

Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos. Matemática Discreta y Lógica 2 1. Árboles Árboles Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos. Como un lazo es un ciclo de longitud 1, un árbol

Más detalles

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

Capitulo V Listas Enlazadas

Capitulo V Listas Enlazadas Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos

Más detalles

Tema 6. Gestión dinámica de memoria

Tema 6. Gestión dinámica de memoria Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos. Grafos Los grafos son estructuras que constan de vértices o nodos y de aristas o arcos que conectan los vértices entre sí. Un grafo G consiste en dos cosas: 1. Un conjunto V de elementos llamados nodos

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

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

Más detalles

Análisis amortizado El plan:

Análisis amortizado El plan: Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras

Más detalles

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco)

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco) Tema 1 Estructuras de datos (Prof. Edgardo A. Franco) Contenido Algoritmia Qué es un algoritmo? Métodos algorítmicos Diagrama de flujo Símbolos utilizados en los diagramas de flujo Reglas para la construcción

Más detalles

Matemáticas Discretas Tc1003 Teoría de Grafos

Matemáticas Discretas Tc1003 Teoría de Grafos Definición. Sea A un grafo. A recibe el nombre de árbol sí y sólo si: A es conexo. A no contiene circuitos. Ejemplos: Definición. Sea A un árbol. Un vértice de grado 1 se llama una hoja. Un vértice de

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

ÁRBOLES BINARIOS DE BÚSQUEDA

ÁRBOLES BINARIOS DE BÚSQUEDA ÁRBOLES BINARIOS DE BÚSQUEDA Introducción Generalidades Definición Consultas a un ABB Introducción Búsqueda Mínimo y máximo Sucesor y predecesor Modificaciones a un ABB Introducción Inserción Eliminación

Más detalles

Estructuras de datos Árboles B

Estructuras de datos Árboles B Estructuras de datos Árboles B Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Árboles B p. 1 Árboles B Árboles B son árboles balanceados que no son binarios. Todos los vértices contienen

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

GRAMATICAS LIBRES DEL CONTEXTO

GRAMATICAS LIBRES DEL CONTEXTO GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.

Más detalles

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

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 CLASE GRAFOS 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

Más detalles

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS MATERIA: ESTRUCTURAS DE DATOS HRS. T/P: 2/3 CARRERA: LIC. EN TECNOLOGÌAS DE INFORMACIÓN CRÉDITOS:

Más detalles

Estructuras de datos. Estructuras de datos

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

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C#.

Tema: Tipos Abstractos de Datos (TAD s) en C#. Programación II. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C#. Objetivos Comprender el concepto Tipo Abstracto de Datos

Más detalles

Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre

Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto. Típicamente, un grafo se representa

Más detalles

Unidad Nº V Listas Enlazadas

Unidad Nº V Listas Enlazadas Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta

Más detalles

Capítulo 6. Relaciones. Continuar

Capítulo 6. Relaciones. Continuar Capítulo 6. Relaciones Continuar Introducción Una relación es una correspondencia entre dos elementos de dos conjuntos con ciertas propiedades. En computación las relaciones se utilizan en base de datos,

Más detalles

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,

Más detalles

Tema 6: Memoria dinámica

Tema 6: Memoria dinámica : Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0

Más detalles

Tema 10- Grafos. Objetivos:

Tema 10- Grafos. Objetivos: Tema - Grafos Duración: 2 semanas aprox. Índice general:. Relaciones entre los Datos de una Colección 2. Conceptos básicos sobre Grafos. Representación de un Grafo: Matriz y Listas de Adyacencia. Implementación

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo. Análisis de Algoritmos Ingeniería Informática, EPS-UAM Información general Organización del curso: 13-15 (mínimo-máximo) semanas docentes: 30-33 clases teóricas. 9-12 clases de problemas 26-30 clases prácticas

Más detalles

TIPO DE DATO ABSTRACTO (TDA)

TIPO DE DATO ABSTRACTO (TDA) TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int

Más detalles

TIPOS DE ARBOLES. Integrantes: Liliana Xitlali Martinez Lovera Octavio Catarino Aguilar

TIPOS DE ARBOLES. Integrantes: Liliana Xitlali Martinez Lovera Octavio Catarino Aguilar TIPOS DE ARBOLES Integrantes: Liliana Xitlali Martinez Lovera Octavio Catarino Aguilar En ciencias de la informática, un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Tema: Algoritmos para la ruta más corta en un Grafo.

Tema: Algoritmos para la ruta más corta en un Grafo. Programación IV. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

TEORÍA DE GRAFOS Ingeniería de Sistemas

TEORÍA DE GRAFOS Ingeniería de Sistemas TEORÍA DE GRAFOS Ingeniería de Sistemas Código: MAT-31114 AUTORES Ing. Daniel Zambrano Ing. Viviana Semprún UNIDADES DE LA ASIGNATURA» UNIDAD I. Relaciones» UNIDAD II. Estructuras Algebraicas» UNIDAD III.

Más detalles

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15 Árboles balanceados Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1 Árboles balanceados Los algoritmos en árboles binarios de búsqueda dan buenos resultados en el caso promedio pero el

Más detalles

3. ESTRUCTURAS DE DATOS NO LINEALES

3. ESTRUCTURAS DE DATOS NO LINEALES 3. ESTRUCTURAS DE DATOS NO LINEALES 3.1 Conjuntos 3.2 Árboles 3.3 Grafos 1 3.1 Conjuntos Índice Introducción Especificación del TAD TipoConjunto Implementaciones del TAD TipoConjunto Programación usando

Más detalles

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia

Más detalles

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Ordenamiento Avanzado: Shellshort y Quicksort

Ordenamiento Avanzado: Shellshort y Quicksort October 1, 2009 1 2 3 4 Acerca del ordenamiento sencillo... Los métodos de ordenamiento sencillo que vimos anteriormente son relativamente fácil de implementar. A expensas de la facilidad de implementarlos

Más detalles

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación 1. Identificación del curso Programa de estudios por competencias Estructura de Datos I Programa educativo: Ing. En Computación Unidad de aprendizaje: Estructura de datos I Departamento de adscripción:

Más detalles

Ing. Manuel Ramírez López ITESCA

Ing. Manuel Ramírez López ITESCA ANTOLOGÍA DE ESTRUCTURA DE DATOS 2 Ing. Manuel Ramírez López ITESCA Estructura de Datos Antología de la Materia 2 Instituto Tecnológico Superior de Cajeme Carretera Internacional Km. 2 Teléfono (644) 415

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

EJERCICIOS DE ÁRBOLES BINARIOS

EJERCICIOS DE ÁRBOLES BINARIOS EJERCICIOS DE ÁRBOLES BINARIOS 1) Supongamos que tenemos una función valor tal que dado un valor de tipo char (una letra del alfabeto) devuelve un valor entero asociado a dicho identificador. Supongamos

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles