Problema a resolver Implementación Algoritmos. Algoritmos y Estructuras de Datos II Elección de Estructuras II 6 de Mayo de
|
|
- Gloria Henríquez Martínez
- hace 5 años
- Vistas:
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 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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
// // 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.
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
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
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
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
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
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
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
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:
Á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)
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
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
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
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
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
Á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
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
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
Á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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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 ;
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
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,
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:
Á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
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
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
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.
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
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
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
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
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.
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;
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
Á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
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
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
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
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,
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.
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
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
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
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
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
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