Examen de Programación 2 Diciembre de 2012
|
|
- Alba Camacho Méndez
- hace 5 años
- Vistas:
Transcripción
1 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 objetivo es optimizar el uso de los recursos de ANP para la inspección de contenedores en búsqueda de material ilícito, como contrabando y drogas. De cada contenedor se conocen los siguientes datos: Origen (String) Destino (String) Contenido declarado (String) Peso (Real) Matrícula del barco (String) Ubicación dentro del puerto (String) El registro de contenedores se hace en base semanal, y a medida que los barcos arriban al puerto se asigna a cada contenedor descargado un número, que lo identifica. Debido a este sistema de numeración a los contenedores de un mismo barco se les asignan identificadores consecutivos. Como la ANP no tiene recursos suficientes para inspeccionar todos los contenedores cada semana se sortea una cantidad I CR de contenedores para escanear o inspeccionar visualmente, siendo CR la cantidad de contenedores que fue registrada esa semana. Si al inspeccionar un contenedor se detecta material ilícito se inspeccionan los contenedores consecutivos (anterior y siguiente) porque es probable que también contengan material ilegal. Se pide: 1. Especifique en MODULA-2 los TADs Contenedor y ListaContenedores. Este último modela la lista semanal de contenedores y deberá contar con al menos las siguientes operaciones: Ingresar un nuevo contenedor. Devolver el contenedor con identificador i, donde 1 i CR Obtener CR Vaciar la lista de contenedores 2. Desarrolle una implementación completa del TAD ListaContenedores que considere las siguientes restricciones: El ingreso de un nuevo contenedor debe realizarse en O(1) Obtener CR debe realizarse en O(1) Asumiendo que estamos accediendo al contenedor con identificador i, donde 1 i CR, se debe poder acceder a los contenedores anterior y posterior en O(1) en caso de que estos contenedores existan (no existe el contenedor anterior al que tiene identificador 1 ni el siguiente del que tiene identificador CR). Se sugiere una implementación basada en listas con posiciones implícitas..
2 Solución 1) CONST MAX = 50; TYPE String = ARRAY [1..MAX] OF CHAR; (* Definición del tipo Contenedor *) TYPE Contenedor; (* Opaco *) PROCEDURE CrearContenedor (Peso : REAL; Origen, Destino, ContDecl, MatrBarco, Ubicacion : String) : Contenedor; PROCEDURE ObtenerPeso (c : Contenedor) : REAL; PROCEDURE ObtenerOrigen (c : Contenedor) : String; PROCEDURE ObtenerDestino (c : Contenedor) : String; PROCEDURE ObtenerContenidoDeclarado (c : Contenedor) : String; PROCEDURE ObtenerMatriculaBarco (c : Contenedor) : String; PROCEDURE ObtenerUbicacion ( c : Contenedor) : String; PROCEDURE DestruirContenedor (c : Contenedor); (* ListaContenedor *) TYPE ListaContenedor; (* Opaco *) (* POST: Crea la lista vacía y el cursor interno queda indefinido *) PROCEDURE CrearListaVacia () : ListaContenedor; (* POST: Ingresa el contenedor 'c' al final de la lista 'l' en O(1) *) PROCEDURE IngresarContenedor (c : Contenedor; VAR l : ListaContenedor); (* POST: Devuelve la cantidad de contenedores registrados (CR) en la lista 'l' en O(1) *) PROCEDURE ObtenerCantContReg (l : ListaContenedor) : CARDINAL; (* PRE: 1 <= i AND i <= ObtenerCantContReg(l) *) (* POST: Posiciona el cursor interno de la lista 'l' en el contenedor con identificador 'i' en O(n) en el peor caso *) PROCEDURE PosicionarCursor (i : CARDINAL; l : ListaContenedor); (* PRE: ObtenerCantContReg(l) > 0 *) PROCEDURE ObtenerPosicionCursor (l : ListaContenedor) : CARDINAL; (* PRE: ObtenerPosicionCursor(l) > 1 *) (* POST: Devuelve el contendor anterior al de la posición actual del cursor interno de la lista 'l' en O(1) *) PROCEDURE ContenedorAnterior (l : ListaContenedor) : Contenedor; (* PRE: ObtenerPosicionCursor(l) < ObtenerCantContReg(l) *) (* POST: Devuelve el contendor siguiente al de la posición actual del cursor interno de la lista 'l' en O(1) *) PROCEDURE ContenedorSiguiente (l : ListaContenedor) : Contenedor; (* PRE: ObtenerCantContReg(l) > 0 *) (* POST: Devuelve el contendor de la posición actual del cursor interno de la lista 'l' en O(1) *) PROCEDURE ContenedorActual (l : ListaContenedor) : Contenedor; (* POST: Libera la memoria de todos los contenedores de la lista 'l' y la deja en el mismo estado como si se invocara a CrearListaVacia *) PROCEDURE VaciarLista (l : ListaContenedor); (* POST: Libera toda la memoria reservada para la lista 'l' y los contenedores *) PROCEDURE DestruirLista (l : ListaContenedor); END ListaContenedor.
3 2) IMPLEMENTATION MODULE ListaContenedor; FROM Storage IMPORT ALLOCATE, DEALLOCATE; TYPE NodoLista = POINTER TO Nodo; Nodo = RECORD cont : Contenedor; pos : CARDINAL; ant, sig : NodoLista; ListaContenedor = POINTER TO Lista; Lista = RECORD inicio, fin, cursor : NodoLista; PROCEDURE CrearListaVacia () : ListaContenedor; VAR l : ListaContenedor; NEW(l); NEW(l^.inicio); (* Celda dummy *) l^.inicio^.ant := NIL; l^.inicio^.sig := NIL; l^.inicio^.pos := 0; (* No es tan dummy! *) l^.cursor := l^.inicio; l^.fin := l^.inicio; RETURN l; END CrearListaVacia; PROCEDURE IngresarContenedor (c : Contenedor; VAR l : ListaContenedor); NEW(l^.fin^.sig); l^.fin^.sig^.ant := l^.fin; l^.fin := l^.fin^.sig; l^.fin^.sig := NIL; l^.fin^.cont := c; l^.fin^.pos := l^.fin^.ant^.pos + 1; (* Acá sirve inicializar en 0 la posición de la celda dummy *) END IngresarContenedor; PROCEDURE ObtenerCantContReg (l : ListaContenedor) : CARDINAL; RETURN l^.fin^.pos; END ObtenerCantContReg; (* PRE: 1 <= i AND i <= ObtenerCantContReg(l) *) (* POST: Posiciona el cursor interno de la lista 'l' en el contenedor con identificador 'i' en O(n) en el peor caso *) PROCEDURE PosicionarCursor (i : CARDINAL; l : ListaContenedor); (* Obtener consecutivos es eficiente! *) WHILE (l^.cursor^.pos <> i) DO IF l^.cursor^.pos > i THEN l^.cursor := l^.cursor^.ant; l^.cursor := l^.cursor^.sig;
4 END PosicionarCursor; (* PRE: ObtenerCantContReg(l) > 0 *) PROCEDURE ObtenerPosicionCursor (l : ListaContenedor) : CARDINAL; RETURN l^.cursor^.pos; END ObtenerPosicionCursor; (* PRE: ObtenerPosicionCursor(l) > 1 *) (* POST: Devuelve el contendor anterior al de la posición actual del cursor interno de la lista 'l' en O(1) *) PROCEDURE ContenedorAnterior (l : ListaContenedor) : Contenedor; RETURN l^.cursor^.ant^.cont; END ContenedorAnterior; (* PRE: ObtenerPosicionCursor(l) < ObtenerCantContReg(l) *) (* POST: Devuelve el contendor siguiente al de la posición actual del cursor interno de la lista 'l' en O(1) *) PROCEDURE ContenedorSiguiente (l : ListaContenedor) : Contenedor; RETURN l^.cursor^.sig^.cont; END ContenedorSiguiente; (* PRE: ObtenerCantContReg(l) > 0 *) (* POST: Devuelve el contendor de la posición actual del cursor interno de la lista 'l' en O(1) *) PROCEDURE ContenedorActual (l : ListaContenedor) : Contenedor; RETURN l^.cursor^.cont; END ContenedorActual; (* POST: Libera la memoria de todos los contenedores de la lista 'l' y la deja en el mismo estado como si se invocara a CrearListaVacia *) PROCEDURE VaciarLista (l : ListaContenedor); VAR aborrar : NodoLista; l^.cursor := l^.inicio^.sig; WHILE l^.cursor <> NIL DO aborrar := l^.cursor; l^.cursor := l^.cursor^.sig; DestruirContenedor(aBorrar^.cont); DISPOSE(aBorrar); l^.inicio^.sig := NIL; l^.fin := l^.inicio; l^.cursor := l^.inicio; END VaciarLista; (* POST: Libera toda la memoria reservada para la lista 'l' y los contenedores *) PROCEDURE DestruirLista (l : ListaContenedor); VaciarLista(l); DISPOSE(l^.inicio); (* La celda dummy *) DISPOSE(l); END DestruirLista; END ListaContenedor.
5 Ejercicio 2 ( puntos) Sea ABB un tipo que representa árboles binarios de búsqueda cuyos elementos son del tipo TInfo que se describe a continuación. Los nodos de ABB están ordenados según el campo clave. TInfo = RECORD clave: CARDINAL; dato: T; Se dispone de las siguientes primitivas: PROCEDURE Crear (): ABB; (* Devuelve un árbol vacío. *) PROCEDURE Cons (info: TInfo; izq, der: ABB): ABB; (* Crea un árbol con raíz igual a "info" y con subárboles izquierdo y derecho "izq" y "der" respectivamente. Precondición: info.clave es mayor que las claves en "izq" y menor que las claves en "der". *) PROCEDURE EsVacio (t: ABB): BOOLEAN; (* Devuelve TRUE si "t" es vacio o FALSE en otro caso. *) PROCEDURE Raiz (t: ABB): TInfo; (* Devuelve la raíz de "t". PROCEDURE Izquierdo (t: ABB): ABB; (* Devuelve el subárbol izquierdo de "t". PROCEDURE Derecho (t: ABB): ABB; (* Devuelve el subárbol derecho de "t". PROCEDURE Mayor (t: ABB): TInfo; (* Devuelve el elemento de "t" cuya clave es más grande. PROCEDURE RemoverMayor (VAR t: ABB); (* Remueve de "t" el nodo cuya clave es más grande y libera los registros de memoria mantenidos por ese nodo. PROCEDURE Destruir (VAR t: ABB); (* Libera todos los registros de memoria utilizados para almacenar el árbol "t". El árbol "t" queda indefinido.*) Se pide: 1. Implemente RemoverMayor accediendo a la representación de ABB. Para ello defina el tipo ABB. La implementación no debe ser recursiva. No se puede utilizar procedimientos auxiliares ni las primitivas. 2. Dado un árbol t de tipo ABB, se quiere obtener otro ABB t 1 que sólo contenga copias de los nodos de t para los cuales el campo dato es mayor que una cierta cota. El árbol obtenido t 1 no debe compartir registros de memoria con t y debe ser un árbol binario de búsqueda ordenado según clave.
6 Para esto se cuenta con la siguiente función auxiliar: PROCEDURE EsMenor (a,b:t) : BOOLEAN (* Devuelve TRUE si y sólo si a<b, FALSE en cualquier otro caso.*) Se debe implementar la función Filtrado, sin definir procedimientos auxiliares ni acceder a la representación (usando solamente las primitivas y la función EsMenor): PROCEDURE Filtrado (t: ABB; cota: T): ABB; (* Devuelve un árbol con los elementos de "t" en los que "dato" es mayor que "cota". *) A modo de ejemplo, y suponiendo que el tipo T corresponda a strings, en la Figura 1 se presenta un árbol t (sobre a izquierda) y el resultado de filtrarlo con una cota igual al string manzana (sobre la derecha). 3. Suponga que también se dispone de la siguiente primitiva: PROCEDURE DestruirRaiz (VAR t: ABB); (* Libera los registros de memoria mantenidos por la raíz de "t". El árbol "t" queda indefinido. Figura 1: Ejemplo del resultado de aplicar la función Filtrado Usando solo las primitivas, incluida DestruirRaiz, implemente el procedimiento PROCEDURE Insertar (info: TInfo; VAR t: ABB); (* Inserta "info" en "t" manteniendo el orden dado por "clave". Precondición: info.clave no es una clave en "t". *) 4. Ahora suponga que en cada nodo se mantiene también la altura del árbol. El tipo TInfo pasa a ser el siguiente: TInfo = RECORD clave: CARDINAL; altura: CARDINAL; dato: T; Implemente, sin definir procedimientos auxiliares y accediendo directamente a la representación del tipo ABB definido en la parte 1, RemoverMayorRec (VAR t: ABB), una versión recursiva de RemoverMayor que además mantenga de manera correcta la altura de cada nodo. La Figura 2 presenta un ejemplo de árbol con el tipo TInfo modificado para almacenar la altura en cada nodo (izquierda) y el resultado de aplicar la función RemoverMayorRec sobre dicho árbol (derecha).
7 Figura 2: Ejemplo de aplicación de la función RemoverMayorRec Solución 1) TYPE T = CARDINAL; TInfo = RECORD clave : CARDINAL; dato : T; altura : CARDINAL; ABB = POINTER TO ABBNodo; ABBNodo = RECORD; info : TInfo; izq, der : ABB; PROCEDURE RemoverMayor (VAR a : ABB); (* NOT EsVacio(t)*) VAR hijo, padre, aborrar : ABB; padre := NIL; hijo := a; (* Busco el primer nodo que el derecho sea NIL *) WHILE hijo^.der <> NIL DO padre := hijo; hijo := hijo^.der; aborrar := hijo; IF padre = NIL THEN (* Era un arbol sin nodo derecho *) a := a^.izq; ELSIF hijo^.izq = NIL THEN (* El más grande es una hoja *) padre^.der := NIL; (* El más grande tiene subarbol izquierdo *) padre^.der := hijo^.izq; DISPOSE(aBorrar); END RemoverMayor;
8 2) PROCEDURE Filtrado (t : ABB; cota : T) : ABB; VAR fizq, fder : ABB; imayor, iraiz : TInfo; IF EsVacio(t) THEN RETURN Crear(); fizq := Filtrado(Izquierdo(t), cota); fder := Filtrado(Derecho(t), cota); iraiz := Raiz(t); IF EsMenor(cota, iraiz.dato)then RETURN Cons(iraiz, fizq, fder); ELSIF EsVacio(fizq) THEN Destruir(fizq); RETURN fder; ELSIF EsVacio(fder) THEN Destruir(fder); RETURN fizq; (* Ninguno de los 2 es vacío y además la raíz no va *) imayor := Mayor(fizq); RemoverMayor(fizq); RETURN Cons(imayor, fizq, fder); END Filtrado; Solución 3) PROCEDURE Insertar (info : TInfo; VAR t: ABB); VAR raiz : TInfo; izq, der : ABB; IF EsVacio(t) THEN t := Cons(info, Crear(), Crear()); raiz := Raiz(t); der := Derecho(t); izq := Izquierdo(t); IF raiz.clave < info.clave THEN Insertar(info, der); Insertar(info, izq); DestruirRaiz(t); t := Cons(raiz, izq, der); END Insertar;
9 4) PROCEDURE RemoverMayorRec (VAR t : ABB); VAR borrar : ABB; (* El arbol no es vacío *) IF t^.der = NIL THEN (* Caso base. La raíz es el elemento mayor. *) borrar := t; t := t^.izq; DISPOSE (borrar); (* Caso recursivo. El mayor está en el subárbol derecho. *) RemoverMayorRec(t^.der); (* controlar y tal vez modificar altura*) IF (t^.izq = NIL) OR (t^.info.altura > 1 + t^.izq^.info.altura) THEN (* La altura de 't' estaba determinada por la de su subárbol derecho, que no era nulo: t^.info.altura = 1 + hder, siendo hder la altura de t^.der antes de la llamada. Al remover solo un nodo la altura de t^.der quedará igual o disminuirá 1.*) IF (t^.der = NIL) OR (t^.info.altura = 2 + t^.der^.info.altura ) THEN (* La altura de t^.der disminuyó 1.*) t^.info.altura := t^.info.altura - 1; END RemoverMayorRec;
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.
Más detallesInstituto 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 detallesProgramació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 detallesSegundo 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 detallesARBOLES 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 detallesEJERCICIO 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 detallesTema 7: Árboles ESTRUCTURAS DE DATOS 1
Tema 7: Árboles ESTRUCTURAS DE DATOS 1 Contenidos Definiciones Conceptos de Árboles Binarios Especificación algebraica Implementaciones Programación con Árboles Binarios Árboles Binarios de Búsqueda Introducción
Más detallesPráctica 4. TAD lista posicional
Objetivos. Práctica 4. TAD lista posicional Se trata de construir el TAD lista posicional con una implementación acotada. Haciendo uso de este TAD, se implementará una biblioteca de cálculos estadísticos
Más detallesEjercicio 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 detallesEduardo 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 detallesProgramación II Árboles binarios de búsqueda (ABB)
Programación II Árboles binarios de búsqueda (ABB) Definición Un árbol binario de búsqueda(abb) a es una estructura de datos de tipo árbol binario en el que para todos sus nodos, el hijo izquierdo, si
Más detallesAlgoritmos 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 detallesEstructura 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 detallesSegundo Parcial de Programación 2 7 de junio de 2017
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Más detallesProgramación II Arboles Binarios(AB)
Programación II Arboles Binarios(AB) Definición Un árbol consta de un conjunto finito de elementos, denominados nodos, y un conjunto finito de líneas dirigidas, denominadas enlaces, que conectan los nodos.
Más detallesLa máxima distancia entre dos nodos de un árbol está dada por alguna de las 3 siguientes: La máxima distancia entre dos nodos del subárbol izquierdo.
Dado un árbol binario cualquiera, calcular la máxima distancia entre dos nodos. El algoritmo debe funcionar en orden de complejidad, siendo n la cantidad de nodos. Idea del algoritmo: La máxima distancia
Más detallesPrá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Á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 detallesARBOLES 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 detallesEstructuras 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 detallesTEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica
TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y
Más detallesAlgorí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 detallesArboles. Definiciones formales: 1) un árbol es un grafo acíclico finito T (P, E) tal que. P = E + 1 => todo arco es desconectante.
Arboles Definición: Es una estructura acíclica que, en algún sentido puede ser considerado el siguiente paso en la jerarquía de complejidad estructural. Los árboles tienen son de amplia aplicación en el
Más detallesÁ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 detallesDescubrir los árboles como paradigma de los tipos Recursivos de Datos
TEMA 5 ÁRBOLES(*) Una de las estructuras las datos más importantes y prominentes que existen es el árbol. No es un árbol en el sentido botánico de la palabra, sino uno de naturaleza más abstracta. Todos
Más detalles324 MR Versión 1 1 Prueba Integral 1/6 Lapso UNIVERSIDAD NACIONAL ABIERTA Semana 12 VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA
324 MR Versión 1 1 Prueba Integral 1/6 UNIVERSIDAD NACIONAL ABIERTA Semana 12 VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Primera Integral
Más detallesTema 7: Árbol Binario
Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema 7: Árbol Binario En el árbol binario se combina lo mejor del array (acceso rápido a elementos,
Más detalles1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Más detallesÁ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 detallesTema 6: Estructuras de datos recursivas
Tema 6: Estructuras de datos recursivas Índice 1 Listas jerárquicas...2 2 Árboles binarios... 4 3 Árboles genéricos...7 4 Referencias...10 1. Listas jerárquicas Las listas tienen la propiedad de la clausura
Más detallesB) Contestar Verdadero o Falso a las siguientes preguntas, justificando la respuesta:
ASIGNATURA CURSO CALIFICACIÓN ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN 2005 / 2006 TITULACIÓN GRUPO CONVOCATORIA EXTRAORDINARIA - DIC B) Contestar Verdadero o Falso a las siguientes preguntas, justificando
Más detallesLISTAS DOBLES y multiples
LISTAS DOBLES y multiples Temas Listas doblemente enlazadas Características y Operaciones Ejemplos Lista múltiples enlaces LISTAS DOBLEMENTE ENLAZADAS y MÚLTIPLE ENLACES Suponga el siguiente problema:
Más detallesUniversidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 5: Árboles. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 5: Árboles Prof. Montserrat Serrano Montero 1 ÍNDICE Primera parte: Conceptos básicos TAD Árbol binario
Más detallesÁ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 detallesESTRUCTURA 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 detalles4. Pilas ESTRUCTURAS DE DATOS 1
4. Pilas Una Pila es una colección de elementos homogéneos dispuestos en orden tal que se recuperan en orden inverso a como se introdujeron. La extracción e inserción de elementos en la Pila se realiza
Más detallesListas, 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 detallesEstructuras 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 detallesEXAMENES RESUELTOS DE PROGRAMACION I
EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE Febrero 2005-1ª Semana - Tipo C Soluciones no oficiales 1.- Las variables de tipo puntero utilizan: a) El procedimiento
Más detallesINGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES
INGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. También se suele dar una definición
Más detallesProgramación Estructuras Arborescentes
Programación 2 4 - Estructuras Arborescentes 1 Definición La recursión puede ser utilizada para la definición de estructuras realmente sofisticadas. Una estructura árbol (árbol general o finitario) con
Más detallesProgramació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 detalles2. Desarrolla una especificación informal genérica para el TAD árbol binario. Incluir operaciones para crear y modificar el árbol.
1. Escribe una especificación informal para los distintos métodos de ordenación que conozcas. La especificación debe ser genérica, es decir trabajar con elementos de cualquier tipo. En qué se diferencia
Más detallesEstructura de Datos. Índice
TEMA 5. ÁRBOLES (I) 1 Índice 1. Concepto de árbol 2. Árboles binarios 1. Especificación informal del TAD árbol binario 2. Implementación del TAD árbol binario 3. Recorrido de un árbol binario 4. Árboles
Más detallesTema: Arboles en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Definición de Árbol Binario. Programación IV. Guía No.
Programación IV. Guía No. 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Arboles en C#. Objetivos Específicos Definir el concepto de la estructura de datos Árbol. Implementar
Más detallesEstructuras de Datos. 14 de junio de Apellidos
Ejercicio 1) (3 puntos). Dado el TAD Pila de Números Enteros con las siguientes operaciones: boolean pilavacia (); void apilar (int x); int desapilar () throws PilaVacia; SE PIDE: Codificar un método estático
Más detallesAná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 detallesTema 09: TAD Árbol binario
Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario
Más detallesEstructura de Datos. Estructuras de Datos no lineales : Árboles
Estructura de Datos Estructuras de Datos no lineales : Árboles Definiciones de Árbol En términos matemáticos, un árbol es cualquier conjunto de puntos, llamados vértices, y cualquier conjunto de pares
Más detallesVersió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 detallesEstructura 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 detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
Más detallesTema 14: ÁRBOLES Algoritmos y estructuras de datos I - Tema 14 1
Tema 14: ÁRBOLES Estructura Árbol Definición: Una estructura de árbol con tipo base Valor es: (i) Bien la estructura vacía. (ii) Un conjunto finito de uno o más nodos, tal que existe un nodo especial,
Más detallesEDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
Más detallesTema 10: Árbol binario de búsqueda
Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de
Más detallesEjercicios del Tema 3 Estructuras jerárquicas: Árboles
ALGORITMOS Y ESTRUCTURAS DE DATOS II Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas Ejercicios del Tema 3 Estructuras jeráruicas: Árboles Árboles n-arios 1.
Más detallesEstructuras de Datos Dinámicas: Listas
Estructuras de Datos Dinámicas: Listas Teoría: Programación I http://proguno.unsl.edu.ar proguno@unsl.edu.ar Listas Capacidad: dinámica Orden: no cronológico. El orden puede ser definido por el programador.
Más detallesDepartamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs)
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) TIPOS ABSTRACTOS DE DATOS (TADs) Introducción Un contraejemplo completo Metodología de la
Más detallesESTRUCTURAS 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 detallesTemario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios
Temario 5.1 Árboles Binarios 5.2 Árboles n-arios Especificación Utilización Representación Enlazada 5.3 Árboles Binarios de Búsqueda 5.4 Árboles Parcialmente Ordenados 1 Árbol n-ario: O bien es el conjunto
Más detallesEstructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Más detallesArreglos y Subrangos
Arreglos y Subrangos Programación 1 InCo - FING Contents 1 Tipo subrango 2 1.1 Subrangos de enteros......................... 2 1.2 Subrangos de caracteres....................... 2 1.3 Operaciones con subrangos.....................
Más detallesEstructuras 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 detallesDiseñ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 detallesTAD. TAD Conjunto Análisis del TAD Conjunto Posibles implemantaciones A.E.D.
TAD TAD Conjunto Análisis del TAD Conjunto Posibles implemantaciones A.E.D. 1 TAD Conjunto Definición Conjunto: Colección no ordenada de elementos (o miembros) distintos. Elemento: Cualquier cosa, puede
Más detallesFUNDAMENTOS DE PROGRAMACIÓN Datos recursivos II
FUNDAMENTOS DE PROGRAMACIÓN Datos recursivos II Ángela Villota Gómez Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle Primera parte: Repaso de funciones con
Más detallesUniversidad Autónoma de Madrid Escuela Politécnica Superior
Universidad Autónoma de Madrid Escuela Politécnica Superior Grado en Ingeniería Informática Programación II Hoja de ejercicios Colas Una implementación en C del TAD Cola tiene como único interfaz las primitivas:
Más detallesColas deprioridad y heaps
Colas deprioridad y heaps Colas de prioridad Numerosas aplicaciones Sistemas operativos, algoritmos de scheduling, gestión de colas en cualquier ambiente, etc. La prioridad en general la expresamos con
Más detallesEstructura de datos Tema 2: Tipos Abstractos de Datos (TADs)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Prof. Montserrat Serrano Montero ÍNDICE Tipos de datos El tipo abstracto
Más detalles324 MR Versión 1 Primera Integral 1/5 Lapso 2009/2. ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Primera Integral FECHA DE APLICACIÓN: 24/10/09;
324 MR Versión 1 Primera Integral 1/5 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Primera Integral FECHA DE
Más detallesExamen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software.
Junio 2008 Programación Concurrente 1/6 Normas Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software Este examen es un cuestionario
Más detallesARBOLES 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 detallesAlgoritmos y Estructuras de Datos. Guillermo Román Díez
Algoritmos y Estructuras de Datos Árboles Generales y Árboles Binarios Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/22
Más detallesTEMA 0 Gestión de Memoria Dinámica
TEMA 0 Gestión de Memoria Dinámica ESTRUCTURAS DE DATOS 1 Objetivos Tema preliminar para entender el uso de la herramienta básica en la gestión de memoria dinámica: punteros Objetivos: Conocer el concepto
Más detallesPara la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación.
Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación. public class BinTree { public BTNode root; // la raiz
Más detallesEXAMENES RESUELTOS DE PROGRAMACION I
EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994 Soluciones no oficiales 1.- Cuál de las siguientes sentencias es incorrecta?: VAR A : ARRAY [0..3] OF ARRAY
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Introducción Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. A B C D E F G H I J K Clasificación con respecto a su relación: Nodo hijo: cualquiera de los nodos
Más detallesProgramació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 detallesEstructuras de Datos Clase 14 Árboles binarios de búsqueda
Estructuras de Datos Clase 14 Árboles binarios de búsqueda Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesProgramación de sistemas Árboles
Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto
Más detallesTecnó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Á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 detallesEstructuras de datos utilizando JAVA
1 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 Centro de Investigación y Transferencia de Tecnología Estructuras de datos utilizando JAVA Facultad: Ingeniería Escuela: Computación
Más detallesEstructuras de Datos II
Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y
Más detallesEstructura de Datos Unidad 6: ARBOLES
Estructura de Datos Unidad 6: ARBOLES A. CONCEPTO DE ARBOL B. TIPOS DE ARBOL C. ARBOL BINARIO D. IMPLEMENTACION DE UN ARBOL BINARIO E. PROYECTO Introducción En ciencias de la informática, un árbol es una
Más detallesTipos de Datos Recursivos
1/1 Tipos de Datos Recursivos Josefina Sierra Santibáñez 15 de mayo de 2018 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones), sino
Más detalles4 Á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ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).
ÁRBOL BINARIO - Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la
Más detalles2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).
Capítulo 7 Heap 7.1 Introducción Una cola de prioridad es una estructura de datos apropiada cuando la tarea más importante es localizar y/o eliminar el elemento con valor menor de una colección. Ejemplo
Más detallesClase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Más detalles1. Árbol Binario de Búsqueda: Las clases Java NodoABB y ABB. 1. Definición y representación en Java 2. Operaciones y su coste estimado
Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un ABB Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un Árbol Binario de Búsqueda Germán Moltó Escuela Técnica
Más detallesAlgorítmica y Lenguajes de Programación. Punteros Introducción a estructuras dinámicas
Algorítmica Lenguajes de Programación Punteros Introducción a estructuras dinámicas Punteros estructuras dinámicas. Introducción! Las variables globales pertenecen al programa princil eisten desde que
Más detallesProgramación 1. Tema V Clase de problemas. Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras
Programación 1 Tema V Clase de problemas Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras 1 1. Representación del tipo Conjunto DebedefinirselarepresentacióndelosdatosdetipoConjunto
Más detallesAnálisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras
Más detallesA) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES
Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN
Más detalles