UNIVERSIDAD DEL ISTMO Estructuras de Datos - Evaluación Ordinaria – 13/JUL/09 M.I.A Daniel Alejandro García López Alumno: ___________________________________________________ Evaluación Escrita: PORCENTAJE 30% CALIF_______ Evaluación Práctica (proyecto): PORCENTAJE 70% CALIF_______ Calificación final: _________________________________________ _____________________________ EVALUACIÓN ESCRITA Escriba V o F según sea verdadero o falso los siguientes enunciados. Cada acierto en esta sección vale 0.05 puntos. 1. 2. 3. 4. 5. 6. ( ) Las estructuras de datos lineales incluyen pilas, colas y algunas listas ligadas. ( ) Una lista enlazada es una colección secuencial de elementos llamados generalmente nodos. ( ) Una lista doblemente ligada es una colección de nodos, en la cual cada nodo tiene dos punteros. ( ) Todo nodo de un árbol que no es raíz ni terminal u hoja se conoce con el nombre de exterior. ( ) El recorrido postorden se visita el subárbol izquierdo, luego el derecho y finalmente la raíz. ( ) Una pila es simplemente una lista de elementos a la cual se puede insertar o eliminar elementos por los extremos. 7. ( ) El método de ordenamiento por selección consiste en encontrar el menor de todos los elementos del arreglo e intercambiarlo con el que está en la primera posición, luego el segundo más pequeño y así sucesivamente. 8. ( ) Las pilas pueden representarse mediante el uso de arreglos y listas enlazadas. 9. ( ) Las colas también reciben el nombre de estructuras LIFO. 10. ( ) Si la pila está llena y se intentara insertar un nuevo valor, se tendría un error conocido con el nombre de overflow. 11. ( ) Una estructura de datos es un conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. 12. ( ) El grado de un árbol es el número de arcos que deben recorrerse para llegar a un nodo terminal. Ejercicio 1. Convierta el siguiente bosque en una representación de árbol binario y desarrolle los recorridos Preorden, Enorden, Postorden para del árbol binario. ¿En cuál de los recorridos se visitan menos nodos para llegar al elemento ‘%’?(0.8 punto). Ejercicio 2. Realice las siguientes eliminaciones en el árbol balanceado AVL dado, 20, 13,18, 11, 9. Y después inserte los siguientes elementos 3, 9, 8, 1, 2,19. Utilice la regla para elegir al nodo más a la derecha del subárbol izquierdo (0.8 puntos). Ejercicio 3. Cuáles son los resultados después de aplicar a los siguientes algoritmos las entradas dadas: (0.8 puntos). a) V={10, 25, 35, 61, 147, 197, 217,309, 448,503} Llamada funcionRecursivaa(V,309,2,8); int funcionRecursivaa(int K[], int X, int T, int B){ if(T==B) and K[T]!=X return -1; M=(T+B)/2; If(K[M]==X) Return M; Else If(K[M]<X) Return(funcionRecursivaa(K,X,M+1,B)) Else Return(funcionRecursivaa(K,X,T,M-1)) } b) Llamada funcionRecursivab(4,7); int funcionRecursivab(int i,int f){ int retorno; if(i> f) retorno=-1; else if(i==f) retorno=1; else retorno=inicio*funcionRecursivab(i+1, f); return retorno; } EVALUACIÓN PRÁCTICA (PROYECTO) Descripción: Diseñar un programa que calcule y muestre la cantidad de accesorios o componentes de una red de comunicación de voz y datos, tales como el número de distribuidores de fibra óptica que se requieren en cada uno de los edificios, el número de hilos de Fibra óptica, así como el número de concentradores o switches, jacks RJ45, bobinas de cable UTP, paneles de parcheo, jumpers lado usuario y lado administrador. Los datos de entrada deben ser leídos desde archivo, y la salida debe poderse guardar en un archivo y/o mostrarse en pantalla (Veáse ejemplo del cálculo en el archivo problema.pdf). Utilice las bibliotecas de estructuras de datos realizadas durante el curso sin realizar modificaciones a las mismas, además comente el programa apropiadamente. Se debe entregar en dos archivos: proyecto1.c y funciones.h, el primero de ellos sólo debe contener la función principal (main), no debe exceder de 100 líneas de código siguiendo las reglas de estilo de programación y el segundo contendrá las funciones auxiliares para resolver el problema, no excediendo las 300 líneas de código. Los comentarios no forman parte de las restricciones de líneas. No se permite más de una instrucción por línea, habrá penalización por cada evento. Se tomará en cuenta las buenas prácticas de programación. Exceder las restricciones en el número de líneas por archivo tendrá penalización por el número de líneas excedentes. Puntos evaluados: 1. 2. 3. 4. Uso correcto de estructuras de datos (3 en total): _____________ Uso de la biblioteca de programas con las estructuras de datos asignada(1.5 en total): _____________ Funcionamiento completo y correcto del programa, facilidad de interpretación en la salida (2 en total): ________________________ Código documentado completo y correcto(0.5 en total): __________________ ARCHIVOS ANEXOS A ESTE EXAMEN: proyecto1.c, funciones.h, problema.pdf, y biblioteca de estructuras de datos.*.