Árboles Binarios Ordenados Árboles AVL

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

Download "Árboles Binarios Ordenados Árboles AVL"

Transcripción

1 Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas

2 Diseño e Implementación TAD Árbol

3 Representación de árboles Elemento base de construcción: Nodo. Nodo contiene: Un dato (primario o definido por el usuario). Una lista (arreglo, ) de vínculos (apuntadores) a los Nodos hijos, ordenados de izquierda a derecha. Un árbol general se define entonces como un apuntador al Nodo de inicio (raíz).

4 Representación de árboles Nodo Dato Árbol Raíz Dato Dato Dato Dato Dato Dato Dato Dato Dato Dato

5 TAD Nodo Auxiliar para la definición de un árbol. Conjunto mínimo de datos: dato del nodo. lista de apuntadores a nodo (para los hijos). Operaciones: constructores, destructores. asignar, extraer el dato del nodo. asignar, extraer una referencia a nodo (hijo).

6 Nodo.h template< class T > class Nodo { protected: T dato; std::list< Nodo<T>* > desc; public: Nodo(); ~Nodo(); T& obtenerdato(); void fijardato(t& val); void limpiarlista(); void adicionardesc(t& nval); void eliminardesc(t& val); };

7 TAD Árbol Estado: conjunto mínimo de datos. Nodo raíz. Interfaz: comportamiento (operaciones). constructores, destructores. asignación, extracción del nodo raíz. verificación de árbol vacío. tamaño del árbol (en nodos), altura del árbol. inserción, eliminación de un nodo. verificación de un nodo en el árbol. recorridos sobre el árbol.

8 Arbol.h template <class T> class Arbol { protected: Nodo<T>* raiz; public: Arbol(); Arbol(T& val); ~Arbol(); bool esvacio(); Nodo<T>* obtenerraiz(); void fijarraiz(nodo<t>* nraiz); bool insertarnodo(t& padre, T& n); bool eliminarnodo(t& n);

9 TAD Árbol }; bool buscar(t& n); unsigned int altura(nodo<t>* inicio); unsigned int tamano(nodo<t>* inicio); void preorden(nodo<t>* inicio); void posorden(nodo<t>* inicio); void nivelorden(nodo<t>* inicio);

10 Árboles Binarios

11 Árbol Binario Árbol binario (2-árbol): árbol en el cual cada uno de sus nodos puede tener no más de 2 hijos. Árbol con grado 2. Cada nodo puede tener 0, 1 o 2 hijos (subárboles). Descendiente de la izquierda es el hijo (subárbol) izquierdo. Descendiente de la derecha es el hijo (subárbol) derecho.

12 Árbol Binario: recorridos en.wikipedia.org/wiki/tree_traversal

13 Árbol Binario: recorridos Pre-orden 1. visitar la raíz 2. recorrer el hijo (subárbol) izquierdo 3. recorrer el hijo (subárbol) derecho

14 Árbol Binario: recorridos Pre-orden F B A D C E G I H en.wikipedia.org/wiki/tree_traversal

15 Árbol Binario: recorridos Pos-orden 1. recorrer el hijo (subárbol) izquierdo 2. recorrer el hijo (subárbol) derecho 3. visitar la raíz

16 Árbol Binario: recorridos Pos-orden A C E D B H I G F en.wikipedia.org/wiki/tree_traversal

17 Árbol Binario: recorridos In-orden 1. recorrer el hijo (subárbol) izquierdo 2. visitar la raíz 3. recorrer el hijo (subárbol) derecho

18 Árbol Binario: recorridos In-orden A B C D E F G H I en.wikipedia.org/wiki/tree_traversal

19 Árbol Binario: recorridos Por niveles 1. visitar la raíz 2. visitar todos los hijos 3. visitar todos los nietos (hijos de los hijos)...

20 Árbol Binario: recorridos Por niveles F B G A D I C E H en.wikipedia.org/wiki/tree_traversal

21 Árboles Binarios Ordenados

22 Árbol Binario Ordenado

23 Árbol Binario Ordenado Estructura de datos recurrente de orden 2. Motivada por la búsqueda binaria. Todos los nodos a la izquierda de la raíz son menores que ella. Todos los nodos a la derecha de la raíz son mayores que ella. Se permiten repetidos?

24 Pre-orden Árbol Binario Ordenado

25 Árbol Binario Ordenado Pre-orden 7, 3, 0, -3, 1, 5, 4, 6, 20, 15, 25, 30

26 In-orden Árbol Binario Ordenado

27 Árbol Binario Ordenado In-orden -3, 0, 1, 3, 4, 5, 6, 7, 15, 20, 25, 30

28 Pos-orden Árbol Binario Ordenado

29 Árbol Binario Ordenado Pos-orden -3, 1, 0, 4, 6, 5, 3, 15, 30, 25, 20, 7

30 Árbol Binario Ordenado Por niveles

31 Árbol Binario Ordenado Por niveles 7, 3, 20, 0, 5, 15, 25, -3, 1, 4, 6, 30

32 Árbol Binario Ordenado Mínimo del árbol? Máximo del árbol?

33 Árbol Binario Ordenado Mínimo del árbol? Seguir los hijos izquierdos desde la raíz hasta que el hijo izquierdo sea nulo el mínimo. Primer elemento del inorden y el posorden. Máximo del árbol? Seguir los hijos derechos desde la raíz hasta que el hijo derecho sea nulo el máximo. Último elemento del inorden y el preorden.

34 Árbol Binario Ordenado Búsqueda: Se facilita la búsqueda con el orden? Complejidad de la búsqueda?

35 Árbol Binario Ordenado Búsqueda: Se facilita la búsqueda con el orden? Definida de manera recursiva. Comparar valor buscado con dato en nodo: si es menor, buscar en el subárbol izquierdo. si es mayor, buscar en el subárbol derecho. si es igual, lo encontramos. Complejidad de la búsqueda? Proporcional a la altura. Caso promedio? O(log n). Peor caso? Árbol como lista O(n).

36 Árbol Binario Ordenado Inserción: Buscar el buen lugar : A qué lado debe ir? Hay espacio? Complejidad de la inserción?

37 Árbol Binario Ordenado Inserción: Comparar valor a insertar con dato en nodo: avanzar por subárbol izquierdo o derecho. si es igual, ya existe en el árbol (duplicado). Si no está duplicado: crear el nuevo nodo con el dato a insertar. asignarlo como hijo izquierdo o derecho del nodo actual. Complejidad de la inserción? Proporcional a la altura. Caso promedio? O(log n). Peor caso? Árbol como lista O(n).

38 Árbol Binario Ordenado Eliminación: Seguimiento desde el padre: Mantenimiento de apuntadores. Casos a borrar: Sin hijos. Un sólo hijo. Dos hijos. Complejidad de la eliminación?

39 Árbol Binario Ordenado Eliminación: Comparar valor a eliminar con dato en nodo: avanzar por subárbol izquierdo o derecho. si es igual, lo encontramos. Si lo encontramos: si no tiene hijos, borrar el nodo. si tiene un hijo, usarlo como nodo de reemplazo. en caso de dos hijos, buscar el nodo mayor del subárbol izquierdo y usarlo como nodo de reemplazo. Complejidad de la eliminación? Caso promedio? O(log n). Peor caso? O(n).

40 Árbol Binario Ordenado Ejercicio: Cómo queda un árbol binario de búsqueda luego de insertar las siguientes secuencias de elementos?

41 Árbol Binario Ordenado 7, 3, 0, -3, 1, 5, 4, 6, 20, 15, 25, 30

42 Árbol Binario Ordenado 7, 3, 0, -3, 1, 5, 4, 6, 20, 15, 25, 30

43 Árbol Binario Ordenado -3, 0, 1, 3, 4, 5, 6, 7, 15, 20, 25, 30

44 Árbol Binario Ordenado -3, 0, 1, 3, 4, 5, 6, 7, 15, 20, 25, 30

45 Árbol Binario Ordenado -3, 1, 0, 4, 6, 5, 3, 15, 30, 25, 20, 7

46 Árbol Binario Ordenado -3, 1, 0, 4, 6, 5, 3, 15, 30, 25, 20, 7

47 Cómo garantizar árboles bonitos? Balanceando: Evitar listas. Evitar ramas cortas. Garantizar búsqueda / inserción / eliminación en O(log n). Árboles AVL y RN.

48 Representación de árboles Árbol binario - elemento base de construcción: Nodo Binario - Nodo Binario contiene: Un dato (primario o definido por el usuario) Un vínculo (apuntador) al hijo (subárbol) izquierdo Un vínculo (apuntador) al hijo (subárbol) derecho - Un árbol binario se define entonces como un apuntador al Nodo Binario de inicio (raíz)

49 Representación de árboles Nodo Dato Árbol Raíz Dato Dato Dato Dato Dato Dato

50 TAD Nodo Binario Auxiliar para la definición de un árbol binario datos miembros dato del nodo apuntador a nodo (hijo, subárbol) izquierdo apuntador a nodo (hijo, subárbol) derecho operaciones constructores, destructores asignar, extraer el dato del nodo asignar, extraer una referencia a nodo (hijo)

51 NodoBinario.h template< class T > class NodoBinario { protected: T dato; NodoBinario<T> *hijoizq; NodoBinario<T> *hijoder; public: T& obtenerdato(); void fijardato(t& val) NodoBinario<T>* obtenerhijoizq(); NodoBinario<T>* obtenerhijoder(); void fijarhijoizq(nodobinario<t> *izq); void fijarhijoder(nodobinario<t> *der); };

52 TAD Árbol Binario Estado: conjunto mínimo de datos Referencia al nodo raíz

53 TAD Árbol Binario Interfaz: comportamiento (operaciones) constructores, destructores obtener, fijar el nodo raíz, la referencia izquierda, la referencia derecha verificación de árbol vacío tamaño del árbol (en nodos), altura del árbol inserción, eliminación de un nodo a la izquierda inserción, eliminación de un nodo a la derecha verificación de un nodo en el árbol recorridos: preorden, inorden, posorden, niveles

54 ArbolBinario.h template< class T > class ArbolBinario { protected: NodoBinario<T> *raiz; public: bool esvacio(); T& datoraiz(); int altura(nodobinario<t> *inicio); int tamano(nodobinario<t> *inicio); bool insertarizq(t& val, NodoBinario<T> *padre); bool insertarder(t& val, NodoBinario<T> *padre);

55 ArbolBinario.h }; bool eliminar(t& val); bool buscar(t& val); void preorden(nodobinario<t> *inicio); void inorden(nodobinario<t> *inicio); void posorden(nodobinario<t> *inicio); void nivelorden(nodobinario<t> *inicio);

56 Árboles AVL (Adelson-Velskii and Landis)

57 Árboles AVL Nombrados por las iniciales de sus inventores: G. M. Adelson-Velskii y E. M. Landis. Adelson-Velskii, G., Landis, E. M. (1962). "An algorithm for the organization of information". Proceedings of the USSR Academy of Sciences 146: Garantiza que las operaciones de búsqueda, inserción y eliminación en un árbol binario ordenado toman en el peor caso O(log n).

58 Árboles AVL Propiedad a garantizar: Para cada nodo del árbol, las alturas de sus dos hijos (subárboles) difieren por mucho en 1. h h-1 h-2

59 Árboles AVL Propiedad a garantizar: Para cada nodo del árbol, las alturas de sus dos hijos (subárboles) difieren por mucho en 1. En las operaciones de inserción y eliminación, esta propiedad puede no cumplirse, por lo que se requiere aplicar operaciones para rebalancear o re-equilibrar el árbol.

60 Árboles AVL 3 altura: 3 altura: altura: 2 altura: altura: 1 5 altura: 0

61 Árboles AVL 3 altura: 2 altura: altura: 1 altura: altura: 0 altura: 0 6

62 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a derecha. Rotación a izquierda. Doble rotación 1: rotación a izquierda seguida de rotación a derecha. Doble rotación 2: rotación a derecha seguida de rotación a izquierda.

63 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a derecha. n1 n2

64 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a derecha. n1 n2

65 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a derecha. n1 n2 n1 n2

66 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a derecha. Rotación derecha sobre padre: n_padre = padre->hijoizq padre->hijoizq = n_padre->hijoder n_padre->hijoder = padre

67 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a izquierda. n1 n2

68 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a izquierda. n1 n2

69 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a izquierda. n1 n2 n1 n2

70 Árboles AVL Operaciones de re-balanceo rotaciones. Rotación a izquierda. Rotación izquierda sobre padre: n_padre = padre->hijoder padre->hijoder = n_padre->hijoizq n_padre->hijoizq = padre

71 Árboles AVL Operaciones de re-balanceo rotaciones. n1 n2

72 Árboles AVL Operaciones de re-balanceo rotaciones. n1 n2

73 Árboles AVL Operaciones de re-balanceo rotaciones. n1 n2 n1 n2

74 Árboles AVL Operaciones de re-balanceo rotaciones. Doble rotación 1: rotación a izquierda seguida de rotación a derecha. n2 n3 n1 n2 n3 n1

75 Árboles AVL Operaciones de re-balanceo rotaciones. Doble rotación 1: rotación a izquierda seguida de rotación a derecha. n2 n3 n1 n2 n3 n1

76 Árboles AVL Operaciones de re-balanceo rotaciones. Doble rotación 1: rotación a izquierda seguida de rotación a derecha. Rotación izquierda-derecha sobre padre: aux = rotizquierda(padre->hijoizq) padre->hijoizq = aux rotderecha(padre);

77 Árboles AVL Operaciones de re-balanceo rotaciones. n1 n2

78 Árboles AVL Operaciones de re-balanceo rotaciones. n1 n2

79 Árboles AVL Operaciones de re-balanceo rotaciones. n1 n2 n1 n2

80 Árboles AVL Operaciones de re-balanceo rotaciones. Doble rotación 2: rotación a derecha seguida de rotación a izquierda. n1 n3 n2 n1 n3 n2

81 Árboles AVL Operaciones de re-balanceo rotaciones. Doble rotación 2: rotación a derecha seguida de rotación a izquierda. n1 n3 n2 n1 n3 n2

82 Árboles AVL Operaciones de re-balanceo rotaciones. Doble rotación 2: rotación a derecha seguida de rotación a izquierda. Rotación derecha-izquierda sobre padre: aux = rotderecha(padre->hijoder) padre->hijoder = aux rotizquierda(padre)

83 Árboles AVL Inserción y eliminación: Una vez realizada la operación, es necesario verificar desde el punto de cambio hacia arriba la condición: Para cada nodo del árbol, las alturas de sus dos hijos (subárboles) difieren por mucho en 1. De forma que cuando se encuentre que esta condición no se cumple, se debe realizar la rotación necesaria en ese punto.

84 Referencias /tree2004.pdf Trees_6up.pdf people.cis.ksu.edu/~schmidt/300s05/lectures/week7b. html pages.cs.wisc.edu/~ealexand/cs367/notes/avl- Trees/index.html

Árboles Binarios Ordenados Árboles AVL

Árboles Binarios Ordenados Árboles AVL Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega

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

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

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

Clase 32: Árbol balanceado AVL

Clase 32: Árbol balanceado AVL Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes

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

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Pilas, Colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Quiz: STL Quiz: STL Standard Template Library (STL) std::vector - Arreglo dinámico,

Más detalles

Arboles Binarios de Búsqueda

Arboles Binarios de Búsqueda Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de

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

Á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

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

Á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

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

Á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

Á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

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

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

Tablas Hash y árboles binarios

Tablas Hash y árboles binarios Tablas Hash y árboles binarios Algoritmos Tablas hash Árboles Binarios Árboles Balanceados Tablas Hash Introducción Las tablas hash son estructuras tipo vector que ayudan a asociar claves con valores o

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

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

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

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

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

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

3. COLA DE PRIORIDAD DEFINICION (I)

3. COLA DE PRIORIDAD DEFINICION (I) 3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)

Más detalles

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista: Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para

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

Algorítmica y Complejidad. Tema 3 Ordenación.

Algorítmica y Complejidad. Tema 3 Ordenación. Algorítmica y Complejidad Tema . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo

Más detalles

Árboles binarios de búsqueda

Árboles binarios de búsqueda Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

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

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

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

OPTIMIZACIÓN DE CÓDIGO

OPTIMIZACIÓN DE CÓDIGO OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

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

Métodos de Ordenamiento. Unidad VI: Estructura de datos

Métodos de Ordenamiento. Unidad VI: Estructura de datos Métodos de Ordenamiento Unidad VI: Estructura de datos Concepto de ordenación La ordenación de los datos consiste en disponer o clasificar un conjunto de datos (o una estructura) en algún determinado orden

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

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica. Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete

Más detalles

ESTRUCTURAS DE DATOS

ESTRUCTURAS DE DATOS CURSO: ESTRUCTURAS DE DATOS 1 SEMESTRE: III 2 CODIGO: 602301 3 COMPONENTE: 4 CICLO: 5 AREA: Profesional 6 FECHA DE APROBACIÓN: 7 NARURALEZA: OBLIGATORIO 8 CARÁCTER: TEORICO - PRÁCTICO 9 CRÉDITOS (RELACIÓN):

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

Más detalles

TAD: Pila. TALLER: TAD Pila

TAD: Pila. TALLER: TAD Pila TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo

Más detalles

Algoritmos de Ordenación

Algoritmos de Ordenación Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Algoritmos comunes - Ordenación Ordenación o clasificación es

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

VI Colas de prioridad

VI Colas de prioridad VI Colas de prioridad Una cola de prioridad (cat: cua de prioritat; ing: priority queue) es una colección de elementos donde cada elemento tiene asociado un valor susceptible de ordenación denominado prioridad.

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

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

<tipo> Tipo de dato de los elementos del vector

<tipo> Tipo de dato de los elementos del vector Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.

Más detalles

Binary Decision Diagrams

Binary Decision Diagrams Rodríguez Blanco 2006-05-18 Introduccion Equivalencia Tablas de verdad eficientes Construcción de Equivalencia Tablas de verdad eficientes Equivalencia de dos fórmulas A 1 y A 2. Construir su tabla de

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

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Fundamentos y Estructuras de Programación Profesor: Gerardo M. Sarria M.

Fundamentos y Estructuras de Programación Profesor: Gerardo M. Sarria M. 9/Mar/2015 Consideraciones Generales Esta evaluación es estrictamente individual. Cualquier violación a esta norma será considerada como fraude. Tiene 2 horas para realizar el examen. Sólo puede sacar

Más detalles

Árboles binarios de búsqueda ( BST )

Árboles binarios de búsqueda ( BST ) Árboles binarios de búsqueda ( BST ) mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 24.04.2015 Arbol Binario de Búsqueda Un árbol binario de búsqueda (Binary Search Tree [BST]) es un árbol

Más detalles

4 ÁRBOLES. ÁRBOLES BINARIOS.

4 ÁRBOLES. ÁRBOLES BINARIOS. 4 ÁRBOLES. ÁRBOLES BINARIOS. Hasta ahora nos hemos dedicado a estudiar TADes que de una u otra forma eran de naturaleza lineal, o unidimensional. En los tipos abstractos de datos lineales existen exactamente

Más detalles

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE ESTRUCTURA

Más detalles

Mostrar Números Ascendentemente. Soluciones Ejercicios Tema 5. tostring Recursivo de LEG. Suma Recursiva de un Vector (1/3)

Mostrar Números Ascendentemente. Soluciones Ejercicios Tema 5. tostring Recursivo de LEG. Suma Recursiva de un Vector (1/3) Mostrar Números Ascendentemente Soluciones Ejercicios Tema 5 Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica

Más detalles

PILAS Fundamentos

PILAS Fundamentos Alg. y Estr. Datos-I / Fund. Progr.-II (R. Ferrís, J. Albert) 11 PILAS 11.1 Fundamentos En este tema y en el siguiente se analizarán las estructuras de datos lineales pilas y colas. Las pilas y las colas

Más detalles

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo. Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones

Más detalles

Ejemplo de Diseño. Algoritmos y Estructuras de Datos II. Diego Gaustein Gervasio Pérez. Departamento de Computación FCEyN UBA. 3 de Octubre de 2012

Ejemplo de Diseño. Algoritmos y Estructuras de Datos II. Diego Gaustein Gervasio Pérez. Departamento de Computación FCEyN UBA. 3 de Octubre de 2012 Ejemplo de Diseño Algoritmos y Estructuras de Datos II Departamento de Computación FCEyN UBA Diego Gaustein Gervasio Pérez 3 de Octubre de 2012 Sistema de acceso al subte por tarjetas prepagas multiviajes

Más detalles

Arboles AA. Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015

Arboles AA. Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015 Arboles AA Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015 Abstract En la industria comercial, durante mucho tiempo se han pasado por alto metodos de ordenamiento con una eficiencia buena y en su

Más detalles

Grafos. Amalia Duch Brown Octubre de 2007

Grafos. Amalia Duch Brown Octubre de 2007 Grafos Amalia Duch Brown Octubre de 2007 Índice 1. Definiciones Básicas Intuitivamente un grafo es un conjunto de vértices unidos por un conjunto de líneas o flechas dependiendo de si el grafo es dirigido

Más detalles

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario

Más detalles

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero

Más detalles

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

Ejemplo de Diseño. Algoritmos y Estructuras de Datos II. Departamento de Computación FCEyN UBA

Ejemplo de Diseño. Algoritmos y Estructuras de Datos II. Departamento de Computación FCEyN UBA Ejemplo de Diseño Algoritmos y Estructuras de Datos II Departamento de Computación FCEyN UBA Qué significa elegir estructuras de datos? En la etapa de especificación nos ocupamos de describir 'qué' queremos

Más detalles

Estructuras de Datos en Java

Estructuras de Datos en Java Estructuras de Datos en Java 1. Antecedentes Introducción a la Orientación a Objetos La programación orientada a objetos (POO) es una nueva manera de enfocar la programación. Desde sus comienzos, la programación

Más detalles

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia CAPITULO II ORDENAMIENTO Y BUSQUEDA Ivan Medrano Valencia ORDENACIÓN La ordenación o clasificación de datos (sort en inglés) es una operación consistente en disponer un conjunto estructura de datos en

Más detalles

Autorizada la entrega del proyecto del alumno: Jorge Barca Orden EL DIRECTOR DEL PROYECTO. Eduardo Alcalde Lancharro. Fdo.:.

Autorizada la entrega del proyecto del alumno: Jorge Barca Orden EL DIRECTOR DEL PROYECTO. Eduardo Alcalde Lancharro. Fdo.:. Autorizada la entrega del proyecto del alumno: Jorge Barca Orden EL DIRECTOR DEL PROYECTO Eduardo Alcalde Lancharro Fdo.:. Fecha: / / Vº Bº del Coordinador de Proyectos Eduardo Alcalde Lancharro Fdo.:.

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: Los Grafos y su importancia para la optimización de redes.

Tema: Los Grafos y su importancia para la optimización de redes. Tema: Los Grafos y su importancia para la optimización de redes. Qué son los Grafos? Un grafo es una dupla G= {X,U}, donde X es un conjunto finito y no vacio de elementos llamados vértices y U es el conjunto

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

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 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS

ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS 1 ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS Corina Flores Villarroel ORDENAMIENTO EN ARREGLOS Y COLECCIONES Una de las tareas más comunes a la hora de procesar datos es la clasificación u ordenación de los datos.

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

Secretaría de Docencia Dirección de Estudios Profesionales

Secretaría de Docencia Dirección de Estudios Profesionales PROGRAMA DE ESTUDIO POR COMPETENCIAS ESTRUCTURAS DE DATOS I. IDENTIFICACIÓN DEL CURSO ESPACIO EDUCATIVO: Facultad de Ingeniería LICENCIATURA: Ingeniería en Computación ÁREA DE DOCENCIA: Programación e

Más detalles

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

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

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. 86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos

Más detalles

PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales

PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales 0. OBJETIVOS El objetivo de esta práctica es la implementación del

Más detalles

APLICACIÓN DE ÁRBOLES BINARIOS

APLICACIÓN DE ÁRBOLES BINARIOS PRÁCTICA Nº 6: 2 sesiones (del 22 al 31 de Mayo de 2002) APLICACIÓN DE ÁRBOLES BINARIOS A LA COMPRESIÓN DE FICHEROS DE TEXTO MEDIANTE LA UTILIZACIÓN DE LOS CÓDIGOS DE HUFFMAN 0.- OBJETIVOS El objetivo

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

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

STL: Standard Template Library

STL: Standard Template Library STL: Standard Template Library Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Consideraciones de diseño Programas = Algoritmos + Datos (ecuación

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

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *? UNIVERIDD REY JUN CRLO CURO 0-0 INTELIGENCI RTIFICIL Hoja de Problemas Tema Ejercicio : Conteste a las siguientes preguntas: (a) Cómo funciona una heurística con aprendizaje? olución: Una heurística con

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Balanceo de árboles y árboles AVL

Balanceo de árboles y árboles AVL Balanceo de árboles y árboles AVL Guido Tagliavini Ponce Universidad de Buenos Aires guido.tag@gmail.com Índice 1. Introducción 1 2. Balanceo de árboles 2 2.1. Motivación....................................

Más detalles

ESTRUCTURA DE DATOS EXPERIENCIA DE LABORATORIO Nº 3/4 (del 27 de Mayo al de 17 de Junio de 2010)

ESTRUCTURA DE DATOS EXPERIENCIA DE LABORATORIO Nº 3/4 (del 27 de Mayo al de 17 de Junio de 2010) ESTRUCTURA DE DATOS EXPERIENCIA DE LABORATORIO Nº 3/4 (del 27 de Mayo al de 17 de Junio de 2010) Profesor: Mauricio Solar Profesora: Lorna Figueroa msolar@inf.utfsm.cl lorna.figueroa@usach.cl Motor de

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero

Más detalles

MICROSOFT EXCEL 2016 Básico

MICROSOFT EXCEL 2016 Básico MICROSOFT EXCEL 2016 Básico METODOLOGÍA DE LOS CURSOS Cursos interactivos sobre materias especializadas en los que el alumno avanza de forma guiada bajo una concepción learning by doing (aprender haciendo).

Más detalles

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna Ingeniería en Computación Unidad de Aprendizaje: Estructura de Datos Unidad de Competencia II: Estructuras de Datos Lineales Marzo 2015 M. en C. Edith Cristina Herrera Luna ESTRUCTURAS DE DATOS Propósito

Más detalles

1

1 Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus

Más detalles

Solución - práctico 10

Solución - práctico 10 Solución - práctico 10 Complejidad Ejercicio 1 a) Una implementación del algoritmo es la siguiente: /* Procedimiento que se encarga de realizar la unión de los dos conjuntos * ordenados der1 e izq1 son

Más detalles

Unidad I: Análisis semántico

Unidad I: Análisis semántico Unidad I: Análisis semántico 1.1 Arboles de expresiones Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol.

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

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

Análisis y Diseño de Algoritmos Tablas de Hash

Análisis y Diseño de Algoritmos Tablas de Hash Análisis y Diseño de Algoritmos Tablas de Hash Guillermo Morales-Luna Arturo Díaz Pérez CONTENIDO 1. Dispersión 2. Funciones de dispersión (a) Método de división (b) Método de multiplicación 3. Direccionamiento

Más detalles

Tema 3. Análisis de costes

Tema 3. Análisis de costes Tema 3. Análisis de costes 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 información

Más detalles