Problema a resolver Implementación Algoritmos. Algoritmos y Estructuras de Datos II Elección de Estructuras II 6 de Mayo de

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

Download "Problema a resolver Implementación Algoritmos. Algoritmos y Estructuras de Datos II Elección de Estructuras II 6 de Mayo de"

Transcripción

1 y Estructuras de Datos II Elección de Estructuras II 6 de Mayo de 2016

2 Voto electrónico Nos encargaron implementar un sistema de voto electrónico. Se cuenta con una base de datos de todos los votantes empadronados, con DNI y nombre completo. El nombre completo se escribe con la forma APELLIDO(S), NOMBRE(S). Cada persona vota con su DNI. En el sistema están cargados los nombres de los candidatos para la elección abierta. Se desea realizar de manera eficiente cada voto, y saber cuántos votos acumuló cada candidato. Se tiene especial interés en obtener de manera eficiente, dado un apellido, todas las personas con ese apellido que no votaron.

3 Especificación DNI es Nat, candidato,nombre es string TAD Eleccion géneros exporta eleccion géneros, generadores, observadores, operaciones observadores básicos faltanvotar : eleccion dicc(dni,nombre) candidatos : eleccion conj(candidato) votos : candidato c eleccion e Nat {c candidatos(e)} generadores creareleccion : dicc(dni,nombre) d eleccion conj(candidato) c {?(c)?(d)} votar : DNI d candidato c eleccion e eleccion {c candidatos(e) def?(d, faltanvotar(e))} Fin TAD

4 Complejidades requeridas Sean: C el nombre de candidato más largo, M el nombre más largo de persona, y k la cantidad de personas que falta votar, n es la cantidad de personas que falta votar con apellido a; se desea que ciertas operaciones sean especialmente eficientes: 1 votos en O( C ) peor caso, 2 votar en O(log k + C ) peor caso, 3 obtener todos los que no votaron (nombre y DNI) con apellido a en O(n M ).

5 Algunas decisiones... Algunas consideraciones Interfaz Estructura de representación Cómo implemento devolver los que no votaron? Puedo implementar directamente la operación de obtener los que no votaron con cierto apellido : Se pueden devolver todos si se da un apellido vacío. Devuelvo un diccionario o un iterador?...en principio de lo mismo. Usemos un iterador.

6 Módulo eleccion: Interfaz (I) Algunas consideraciones Interfaz Estructura de representación Nueva(in votantes: dicc(dni,nombre), in candidatos: conj(candidato)) ret: eleccion Pre { Vacio(votantes) Vacio(candidatos)} Post {ret = creareleccion(votantes, candidatos)} Aliasing: No hay. Descripción: Crea una votación nueva. Votar(inout e: eleccion, in votante: DNI, in voto: candidato) Pre {e = e 0 def?(votante, faltanvotar(e) voto candidatos(e)} Post {e = votar(votante, voto, e 0 )} Aliasing: No hay. Descripción: Efactúa el voto de votante por el candidato voto.

7 Módulo eleccion: Interfaz (II) Algunas consideraciones Interfaz Estructura de representación Votos(in e: eleccion, in quien: candidato) ret: Nat Pre {quien candidatos(e)} Post {ret = votos(quien, e)} Aliasing: No hay. Descripción: Devuelve los votos obtenidos por el candidato quien....y cómo devolvemos los que no votaron? NoVotaron(in e: eleccion, in apellido: string) ret: itdicc(nombre,dni) Pre {true} Post {alias(espermutacion(ret, filtrarclavesprefijo(apellido, faltanvotar(e))} Aliasing: El iterador devuelto es no modificable. Descripción: Devuelve un iterador a un diccionario de los que no votaron con prefijo apellido.

8 Qué estructura elijo? Algunas consideraciones Interfaz Estructura de representación Miremos las complejidades más de cerca: Votos en O( C )... sugiere un Diccionario sobre Trie con el conteo de votos. NoVotaron en O(n M )... también! (ordenado por nombre) Votar en O(log(k) + C )... necesita los que no votaron ordenados por DNI! Cómo mantenemos actualizados a los que NoVotaron respetando la complejidad de Votar??...Podemos jugar con iteradores!! Idea: Podemos mantener en una estructura iteradores que apunten a elementos de otra, y usarlos como punteros.

9 Estructura propuesta (I) Algunas consideraciones Interfaz Estructura de representación eleccion se representa con estr donde estr es tupla con NoVotaronPorDNI: Dicc(DNI, < nom : nombre, ref : itdicc(nombre, DNI ) >), NoVotaronPorNombre: Dicc(nombre, DNI ), Votos: Dicc(candidato, Nat)) Y necesitamos que: NoVotaronPorDNI sea un diccionario implementado sobre AVL; NoVotaronPorNombre y Votos: sean diccionarios implementados sobre Trie; NoVotaronPorNombre borre claves en O(1); NoVotaronPorNombre tenga una operación ObtenerSufijos que nos de un itdicc a los sufijos de un string dado. Debería sólo dejar iterar los sufijos del string, y no el resto... Nos vamos a abstraer un poco de cómo implementar los requisitos recién mencionados.

10 Estructura propuesta (II) Algunas consideraciones Interfaz Estructura de representación Sufijos de "PERE" en el Trie A E Z <vacio> P T T I E R E Y R A Z El itdicc creado apunta acá

11 Estructura propuesta (III) Algunas consideraciones Interfaz Estructura de representación NoVotaronPorDNI y NoVotaronPorNombre <vacio> P A E Z E R E T T I Y R A PEREZ, it NoVotaronPorDNI <vacio> NoVotaronPorNombre Z DNI

12 : NoVotaron y Votos ivotos(inout e: eleccion, in voto: candidato) ret: Nat 1: ret Obtener(e.Votos, voto) inovotaron(inout e: eleccion, in apellido: string) ret: itdicc(nombre, DNI) ret ObtenerSufijos(e.NoVotaronPorNombre, apellido)

13 Algoritmo: Votar ivotar(inout e: eleccion, in votante: DNI, in voto: candidato) 1: Definir(e.Votos, voto, Obtener(e.Votos, voto) + 1) 2: EliminarSiguiente(Obtener(e.NoVotaronPorDNI, votante).ref ) 3: Borrar(e.NoVotaronPorDNI, votante) Complejidades: 1: Definir, Obtener: O( voto ), O( voto ) 2: Obtener,EliminarSiguiente: O(log k),o(1) 3: Borrar: O(log k) Total: O( voto + log k) Notar que el paso (3) está actualizando el diccionario NoVotaronPorNombre!

14 Algoritmo: Nueva Eleccion inueva(in votantes: dicc(dni,nombre), in candidatos: conj(candidato)) ret: eleccion itc : itconj(candidato) itc CrearIt(candidatos) Mientras HaySiguiente(itc): Definir(ret.Votos, Siguiente(itc), 0) Avanzar(itc) it : itdicc(dni, nombre) it CrearIt(votantes) Mientras HaySiguiente(it): it3 : itdicc(nombre, DNI ) it3 Definir(ret.NoVotaronPorNombre, SiguienteSignificado(it), SiguienteClave(it)) Definir(ret.NoVotaronPorDNI, SiguienteClave(it), < SiguienteSignificado(it), it3 >) Avanzar(it)

15 Listo! Preguntas?

Elección de estructuras

Elección de estructuras Elección de estructuras Algoritmos y Estructuras de Datos 2 Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 10 de octubre de 2014 Repaso: Qué es elegir

Más detalles

Implementación de diccionarios sobre Trie en C++

Implementación de diccionarios sobre Trie en C++ Implementación de diccionarios sobre Trie en C++ Algoritmos y Estructuras de Datos II 2. do cuatrimestre de 2016 Introducción Vamos a implementar una interfaz de diccionario en C++ La representación interna

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

Elección de estructuras

Elección de estructuras Elección de estructuras Algoritmos y Estructuras de Datos 2 Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 2 de mayo de 2016 Repaso: Qué significa elegir

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

Asignatura: Estructura de la Información. Curso: 2009/2010 primer semestre

Asignatura: Estructura de la Información. Curso: 2009/2010 primer semestre Código: 75.001 Asignatura: Estructura de la Información Curso: 2009/2010 primer semestre PEC 2 Ejercicio 1 [2 puntos] Apartado 1.1) Describid el funcionamiento de un algoritmo que permita fusionar dos

Más detalles

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

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común

Más detalles

Listas, Pilas y Colas

Listas, Pilas y Colas Ejercicios de Abstracción 1) Realizar un procedimiento que cuente la cantidad de elementos de una cola. Lo mismo para una pila y una lista. Las estructuras deben quedar en el estado original. 2) Realizar

Más detalles

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos

Más detalles

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Estructura de Datos y de la Información Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Laboratorio de Investigación y Desarrollo en Inteligencia Artificial Departamento de Computación

Más detalles

Segundo parcial de Programación 2

Segundo parcial de Programación 2 Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas

Más detalles

Programación II Práctica 02a: Tipos Abstractos de Datos (TAD) Básicos

Programación II Práctica 02a: Tipos Abstractos de Datos (TAD) Básicos Introducción Programación II Práctica 02a: Tipos Abstractos de Datos (TAD) Básicos Versión del 01/08/2015 En las clases teóricas se estudiaron las ventajas que tienen los TADs. A continuación las repasamos:

Más detalles

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión

Más detalles

Práctica 2. TAD pila

Práctica 2. TAD pila Objetivos. Práctica. TAD pila Se trata de construir el TAD PILA con dos implementaciones (una acotada y otra no acotada sin cabecera) que compartirán el mismo módulo de definición. Haciendo importación

Más detalles

Algoritmos y Programación II Curso 2006

Algoritmos y Programación II Curso 2006 Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica

Más detalles

Concurrencia Prácticas 1 y 2

Concurrencia Prácticas 1 y 2 Concurrencia Prácticas 1 y 2 Grado en Ingeniería Informática/ Grado en Matemáticas e Informática/ 2ble. grado en Ing. Informática y ADE Convocatoria de Semestre feb jun 2017 2018 Normas La fecha límite

Más detalles

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente:

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente: ASIGNATURA TITULACIÓN APELLIDOS ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN EJERCICIO 1 (3 PUNTOS) GRUPO CURSO CONVOCATORIA NOMBRE 23 / 24 EXTRAORDINARIA- SEPTIEMBRE CALIFICACIÓN Dado el tipo abstracto de

Más detalles

Trabajo Práctico # 5

Trabajo Práctico # 5 Trabajo Práctico # 5 Estructuras de Datos, Universidad Nacional de Quilmes 7 de octubre de 2017 Aclaraciones: Los ejercicios fueron pensados para ser resueltos en el orden en que son presentados. No se

Más detalles

Asignatura: Estructura de la Información. Curso: 2009/2010 primer semestre

Asignatura: Estructura de la Información. Curso: 2009/2010 primer semestre Código: 75.001 Asignatura: Estructura de la Información Curso: 2009/2010 primer semestre PEC 2 Ejercicio 1 [2 puntos] Apartado 1.1) Describid el funcionamiento de un algoritmo que permita fusionar dos

Más detalles

TIPOS ABSTRACTOS DE DATOS EN HASKELL

TIPOS ABSTRACTOS DE DATOS EN HASKELL TIPOS ABSTRACTOS DE DATOS EN HASKELL ÍNDICE GENERAL 1. Introducción a Haskell 2. Tipos abstractos de datos en Haskell 3. TAD Grafo 4. TAD Montículos 5. Bibliografía INTRODUCCIÓN A HASKELL 1. Introducción

Más detalles

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol

Más detalles

Algoritmos y Estructuras de Datos II Segundo parcial 14 de junio de 2014

Algoritmos y Estructuras de Datos II Segundo parcial 14 de junio de 2014 Algoritmos y Estructuras de Datos II - DC - UBA 1 er cuatrimestre de 2014 Aclaraciones Algoritmos y Estructuras de Datos II Segundo parcial 14 de junio de 2014 El parcial es a libro abierto. Cada ejercicio

Más detalles

// // CONSTRUCTOR: // // //******************OPERACIONES PUBLICAS**************** // ) --> // ) --> // // // CONSTRUCTOR: // // // ATRIBUTOS

// // CONSTRUCTOR: // // //******************OPERACIONES PUBLICAS**************** // ) --> // ) --> // // // CONSTRUCTOR: // // // ATRIBUTOS Para la resolución de todos los ejercicios de esta sección se dispone de una implementación del TAD Lista a través de las clase LinkedList, y su iterador LinkedListItr. A continuación se exponen sus definiciónes.

Más detalles

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Examen de Programación 2 Diciembre de 2012

Examen de Programación 2 Diciembre de 2012 Ejercicio 1 ( puntos) Examen de Programación 2 Diciembre de 2012 La Administración Nacional de Puertos (ANP) quiere sistematizar la inspección de contenedores en tránsito en el puerto de Montevideo. El

Más detalles

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFACE ITERABLE DEL API DE JAVA Y MÉTODO ITERATOR. RECORRER COLECCIONES DE OBJETOS (CU00915C)

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFACE ITERABLE DEL API DE JAVA Y MÉTODO ITERATOR. RECORRER COLECCIONES DE OBJETOS (CU00915C) APRENDERAPROGRAMAR.COM EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFACE ITERABLE DEL API DE JAVA Y MÉTODO ITERATOR. RECORRER COLECCIONES DE OBJETOS (CU00915C) Sección: Cursos Categoría: Lenguaje de programación

Más detalles

Secuencias en Python. Introducción a la Computación Clase 11 Patricia Borensztejn

Secuencias en Python. Introducción a la Computación Clase 11 Patricia Borensztejn Secuencias en Python Introducción a la Computación Clase 11 Patricia Borensztejn Una cadena es una secuencia En Python tenemos los tipos de datos Escalares: enteros, flotantes Secuencias: sucesión de elementos

Más detalles

Programación II Práctica 02b: Tipos Abstractos de Datos (TAD) Avanzados Versión del 01/01/2017

Programación II Práctica 02b: Tipos Abstractos de Datos (TAD) Avanzados Versión del 01/01/2017 Programación II Práctica 02b: Tipos Abstractos de Datos (TAD) Avanzados Versión del 01/01/2017 Ejercicio1: Agenda Implementar una agenda basada en el TAD diccionario La agenda deberá tener una clave basada

Más detalles

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

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

Estructuras de datos Solemne 2

Estructuras de datos Solemne 2 Estructuras de datos Solemne 2 Profesores: Luis Bastías, Rodrigo Paredes, Iván Zuñiga Ayudantes: Patricia Albornoz, Francisco Claude, Hans Ulloa Sin apuntes, 1:30 horas P1. Move-To-Front Lists Utilizando

Más detalles

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:

Más 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

Algoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles

Algoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles 3.1. Explicar por qué es necesario, en la representación de conjuntos mediante árboles trie, utilizar una marca de fin de palabra $ (puesto que podríamos hacer que las palabras del conjunto se correspondieran

Más detalles

TADs en 2 niveles. Clase práctica. Martín A. Miguel (March) 21 de Marzo de Algoritmos y Estructuras de Datos II

TADs en 2 niveles. Clase práctica. Martín A. Miguel (March) 21 de Marzo de Algoritmos y Estructuras de Datos II TADs en 2 niveles Clase práctica Martín A. Miguel (March) Algoritmos y Estructuras de Datos II 21 de Marzo de 2016 Poniéndonos en contexto La práctica hasta ahora... Clase 1: Definimos observadores e igualdad

Más detalles

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios 62. Explica por qué es necesario, en la representación de conjuntos mediante árboles trie, utilizar una marca de fin de palabra $ (puesto que podríamos hacer que las palabras del conjunto se correspondieran

Más detalles

Introducción a la Computación (Matemática)

Introducción a la Computación (Matemática) Introducción a la Computación (Matemática) Primer Cuatrimestre de 2016 Tipos Abstractos de Datos 1 Problema: Agenda Queremos programar una agenda de contactos. De cada persona nos interesa guardar: Nombre

Más detalles

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

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

Más detalles

Programación TADs Arboles

Programación TADs Arboles Programación 2 10 - TADs Arboles 1 Arboles Una estructura árbol (árbol general) con tipo base T es, 1. O bien la estructura vacía 2. O bien un nodo de tipo T, llamado raíz del árbol, junto con un número

Más detalles

Estructura de Datos y de la Información

Estructura de Datos y de la Información Universidad Rey Juan Carlos Curso 2009/10 Ingeniería Técnica en Informática de Gestión Estructura de Datos y de la Información Examen Final Junio 2010 Fecha: 24-6-2010 Soluciones Ejercicio 1. (Puntuación

Más detalles

Árboles Binarios de Búsqueda. Lección 13

Árboles Binarios de Búsqueda. Lección 13 Árboles Binarios de Búsqueda Lección 13 Árboles Binarios de Búsqueda Árboles binarios de búsqueda (abb s): El tipo de los elementos del árbol posee una relación de orden total ( ) Todo árbol vacío es un

Más detalles

Estructuras de datos Solemne 2

Estructuras de datos Solemne 2 Estructuras de datos Solemne 2 Profesores: Luis Bastías, Rodrigo Paredes, Iván Zuñiga Ayudantes: Patricia Albornoz, Francisco Claude, Hans Ulloa Sin apuntes, 1:30 horas P1. Transpose Lists Utilizando listas

Más detalles

Algoritmos y Estructuras de Datos II

Algoritmos y Estructuras de Datos II 8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos

Más detalles

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

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Elegimos a nuestro delegado de aula

Elegimos a nuestro delegado de aula QUINTO GRADO - UNIDAD 1 - SESIÓN 05 Elegimos a nuestro delegado de aula Por qué debemos elegir? Recuerda que un aspecto fundamental del ejercicio ciudadano es la posibilidad de elegir representantes. Esta

Más detalles

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

Programación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Práctico - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Objetivos Trabajar con los tipos abstractos de datos Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario. Desarrollar y analizar

Más detalles

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación: Versión Iterativa de recuperar en un ABB Ejercicios Tema 11 Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica

Más detalles

Programación II 2do cuatrimestre 2017

Programación II 2do cuatrimestre 2017 Tecnología Java El propósito de esta clase es aplicar los conceptos de TAD y Complejidad en Java. A continuación se mencionan algunas herramientas que nos ayudaran a aplicar estos y otros conceptos que

Más detalles

ALGORITMOS Y ESTRUCTURAS DE DATOS

ALGORITMOS Y ESTRUCTURAS DE DATOS http://webs.um.es/frgarcia/teaching.htm ALGORITMOS Y ESTRUCTURAS DE DATOS PRÁCTICA. TEMAS 2 Y 3 SEMINARIO DE C++ SESIÓN 3 Francisco García Sánchez frgarcia@um.es Despacho 2.31 INDICE DE CONTENIDOS Introducción

Más detalles

Tipos abstractos de datos (TAD)

Tipos abstractos de datos (TAD) Capítulo 2 Tipos abstractos de datos (TAD) Objetivo: Introducir al alumno las estructuras de datos mediante el concepto de tipo abstracto de datos. En este capítulo se presenta una primera implementación

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática

Algoritmos y Estructuras de Datos Ingeniería en Informática 3.1.Explica por qué es necesario, en la representación de conjuntos mediante árboles trie, utilizar una marca de fin de palabra $ (puesto que podríamos hacer que las palabras del conjunto se correspondieran

Más detalles

Diseño de Conjuntos y Diccionarios

Diseño de Conjuntos y Diccionarios Diseño de Conjuntos y Diccionarios Representación de Conjuntos y Diccionarios TAD Diccionario(clave, significado) Observadores básicos def?: clave c x dicc(clave, significado) d bool obtener: clave c dicc(clave,

Más detalles

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }

Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); } dit UPM Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Laboratorio de Programación 19 de Junio de 2002 Soluciones EJERCICIO 1 (UNA PÁGINA: UNA HOJA POR

Más detalles

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

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;

Más detalles

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

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

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Cursos

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Cursos Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Cursos Previo. Gestión del tiempo. Para la realización del examen es necesario utilizar fechas. A continuación se dan algunas indicaciones:

Más detalles

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

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles

Más detalles

La implementación se realizará en Java, a partir de un diseño orientado a objetos del problema descrito.

La implementación se realizará en Java, a partir de un diseño orientado a objetos del problema descrito. CONTEXTO FUNDAMENTOS DE PROGRAMACIÓN: TRABAJO PRÁCTICO OBLIGATORIO Curso: 2013/14 CASO DE APLICACIÓN: GESTIÓN DE UNIVERSIDADES (ENTREGA 2) Versión: 1.0.1 El trabajo práctico se enmarca en el desarrollo

Más detalles

Colas con prioridad, montículos y el heapsort. Lección 18

Colas con prioridad, montículos y el heapsort. Lección 18 Colas con prioridad, montículos y el heapsort Lección 18 Cola con prioridad Cola con prioridad: Se pueden añadir elementos en cualquier orden Los elementos se extraen por orden según su prioridad Cola

Más detalles

PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I

PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I 1. Explicar por qué la complejidad algorítmica se mide en órdenes (0.5 puntos). Un orden representa el conjunto de funciones que poseen un mismo ritmo de crecimiento.

Más detalles

Algoritmos de Búsqueda

Algoritmos de Búsqueda Introducción a la Computación Algoritmos de Búsqueda Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 11/10/2017 E. Mocskos (UBA CONICET) Algoritmos de Búsqueda

Más detalles

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

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Bloque 1. Conceptos y técnicas básicas en programación

Bloque 1. Conceptos y técnicas básicas en programación Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión

Más detalles

Algoritmos y Estructuras de Datos I - Laboratorio Proyecto 2. Derivaciones y Tipos de datos en Haskell

Algoritmos y Estructuras de Datos I - Laboratorio Proyecto 2. Derivaciones y Tipos de datos en Haskell 1 1. Objetivo Algoritmos y Estructuras de Datos I - Laboratorio Proyecto 2 Derivaciones y Tipos de datos en Haskell Este proyecto consta de dos partes. La primera (Ejercicios 1) consiste en implementar

Más detalles

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

Implementación de las Clases Pila, Cola, Lista y Arbol 1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 13 de mayo de 2018 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos niveles.

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

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 2003/2004 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Teoría de los Lenguajes de Programación Práctica curso Enunciado. Fernando López Ostenero y Ana García Serrano

Teoría de los Lenguajes de Programación Práctica curso Enunciado. Fernando López Ostenero y Ana García Serrano Teoría de los Lenguajes de Programación Práctica curso 2015-2016 Enunciado Fernando López Ostenero y Ana García Serrano Sumario 1. Introducción: Skyline de una ciudad...3 2. Enunciado de la práctica...3

Más detalles

Indexación con lista enlazada

Indexación con lista enlazada Indexación con lista enlazada Estructura de datos Roberto Maestre Martínez Diseño y arquitectura del sistema La nomenclatura utilizada es la siguiente. cvar Indica nombre de clase Var ovar Indica un objeto

Más detalles

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:

Más detalles

Ejercicios Resueltos del Práctico 3 - Recursión

Ejercicios Resueltos del Práctico 3 - Recursión Ejercicio 1 Escriba el pseudocódigo de una función recursiva que verifique si 2 listas son iguales (mismos elementos en el mismo orden). Solución propuesta para el Ejercicio 1 Si ambas listas son vacías

Más detalles

Estructuras de datos Listas y árboles

Estructuras de datos Listas y árboles Estructuras de datos Listas y árboles Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Listas y árboles p. 1 Listas Listas son estructuras un poco más avanzadas que puros arreglos, como

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

Análisis del caso promedio El plan:

Análisis del caso promedio El plan: Análisis del caso promedio El plan: Probabilidad Análisis probabilista Árboles binarios de búsqueda construidos aleatoriamente Tries, árboles digitales de búsqueda y Patricia Listas skip Árboles aleatorizados

Más detalles

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++ Qué es una variable? Variables Memoria Matemática: una etiqueta que representa a un valor en una expresión: f (y) = y 2 + 2y Programación: Nombre simbólico dado a un valor residente en la memoria. Propiedades

Más detalles

Elegimos a nuestro delegado o delegada de aula

Elegimos a nuestro delegado o delegada de aula QUINTO Grado - Unidad 1 - Sesión 05 Elegimos a nuestro delegado o delegada de aula Por qué debemos elegir? Recuerda que un aspecto fundamental del ejercicio ciudadano es poder elegir a tus representantes

Más detalles

Tema 4 Colecciones en Java. Programación Orientada a Objetos Curso 2013/2014

Tema 4 Colecciones en Java. Programación Orientada a Objetos Curso 2013/2014 Tema 4 Colecciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Colecciones (paquete java.util): Interfaz Collection Interfaz List Interfaz Set InterfazMap Copia de

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles

Más detalles

Partes de un Tipo Abstracto de Datos. Introducción a la Computación (Matemática) TAD Fecha

Partes de un Tipo Abstracto de Datos. Introducción a la Computación (Matemática) TAD Fecha Partes de un Tipo Abstracto de Datos Introducción a la Computación (Matemática) Primer Cuatrimestre de 2015 Tipos Abstractos de Datos Parte pública: Disponible para el usuario externo. Nombre y tipos paramétricos

Más detalles

Tablas multidimensionales. Lección 20

Tablas multidimensionales. Lección 20 Tablas multidimensionales Lección 20 Tablas Multidimensionales Las tablas multidimensionales se definen como tipos funcionales que representan funciones cuyo dominio es el producto cartesiano de varios

Más detalles

Elecciones Municipales 2017 Domingo 12 de marzo. Elecciones Municipales en el nuevo distrito de Pucacolpa

Elecciones Municipales 2017 Domingo 12 de marzo. Elecciones Municipales en el nuevo distrito de Pucacolpa Elecciones Municipales 2017 Domingo 12 de marzo Elecciones Municipales en el nuevo distrito de Pucacolpa 1 Domingo, 12 de marzo de 2016 1 Editado por: Oficina Nacional de Procesos Electorales Jr. Washington

Más detalles

Á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 Diseño e Implementación TAD Árbol Representación de árboles

Más detalles

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java

Más detalles

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando

Más detalles

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

Implementación de las Clases Pila, Cola, Lista y Arbol 1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 28 de noviembre de 2017 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos

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

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes Introducción El ejercicio consiste en la implementación de una aplicación para la creación, edición, resolución y corrección de exámenes.

Más detalles

EJERCICIOS RESUELTOS TI7: EJERCICIOS SOBRE CICLOS (MIENTRAS QUE, HAGA MIENTRAS Y PARA)

EJERCICIOS RESUELTOS TI7: EJERCICIOS SOBRE CICLOS (MIENTRAS QUE, HAGA MIENTRAS Y PARA) EJERCICIOS RESUELTOS TI7: EJERCICIOS SOBRE CICLOS (MIENTRAS QUE, HAGA MIENTRAS Y PARA) 1. Elaborar un algoritmo que encuentre el factorial de un número positivo. Análisis: Datos de Entrada: n Datos de

Más detalles

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

95.12 Algoritmos y Programación II Práctica 7: árboles Notas preliminares 95.12 Algoritmos y Programación II Práctica 7: árboles El objetivo de esta práctica es introducir distintas clases de estructuras de datos arbóreas y algoritmos para manipularlas. Los

Más detalles

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS OTOÑO 2018 CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 4: El Álgebra Relacional Aidan Hogan aidhog@gmail.com PARA QUÉ NECESITAMOS EL ÁLGEBRA RELACIONAL? Para qué necesitamos tablas? para colgarlas en la pared y reflexionar

Más detalles

Cuaderno de ejercicios para las y los Funcionarios de Casilla Información Local (adenda)

Cuaderno de ejercicios para las y los Funcionarios de Casilla Información Local (adenda) Cuaderno de ejercicios para las y los Funcionarios de Casilla Información Local (adenda) Proceso Electoral 2017-2018 1 Instituto Electoral de Tamaulipas Consejero Presidente Lic. Miguel Ángel Chávez García

Más detalles

Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática)

Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática) Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática) Primera parte (50% nota del examen) Septiembre 2009 1) Se desea hacer un método con la cabecera que se muestra abajo que cree y retorne

Más detalles

Proyecto 3 Árboles Binarios de Búsqueda

Proyecto 3 Árboles Binarios de Búsqueda Proyecto 3 Árboles Binarios de Búsqueda Algoritmos y Estructuras de Datos II - Laboratorio Docentes: Natalia Bidart, Matías Bordese, Diego Dubois, Leonardo Rodríguez, David Arch, Maximiliano Bustos. Objetivo

Más detalles