ESTRUCTURAS DE DATOS Y ALGORITMOS Código de I.S: 402029 Código de I.G: 412020 UNIVERSIDAD NACIONAL DE EDUCACION A DISTANCIA Primera Semana Dpto. de Informática y Automática Facultad de Ciencias Enero 2001 Duración: 2 horas Esta hoja de enunciados debe ser entregada con los siguientes datos: Nombre: .......................................................................................................................... Indique claramente la Ingeniería (Sistemas o Gestión) en la que está matriculado. Indique claramente el Centro Asociado en el que está matriculado. NOTA: Para la realización de este examen NO se permite el uso de Calculadora ni de ningún tipo de material. ?????? 1.- Realizar detalladamente el análisis del algoritmo de inserción binaria PROCEDURE insercion_binaria; VAR i,j,m,L,R : integer; x : integer; BEGIN FOR i:=2 TO n DO x:=a[i]; L:=........; R:=..........; WHILE ........ DO m:=.........................; IF .................. THEN L:=m+1 ELSE R:=m END; END; FOR j:=i TO R+1 BY -1 DO ................ END; a[R]:=x; END; END; 2.- Explicar detalladamente el método de clasificación por mezcla directa. Explicar su aplicación, los conceptos relacionados con ella (pases, fases, etc.) sus denominaciones, inconvenientes y posibles mejoras. Ilustrarlo mediante la siguiente secuencia 46 57 14 44 96 20 8 70 Comentar el análisis del coste de este método de clasificación. 3.- Definir el TDA pila. Detallar sus características. Realizar la implementación estática de sus operadores básicos. 4.- Un árbol B Binario Simétrico (BBS) se define como aquel que posee las siguientes propiedades: 1) Todo nodo contiene una llave y, como máximo dos apuntadores a subárboles. 2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos horizontales en ninguna trayectoria de búsqueda. 3) Todos los nodos terminales aparecen en el mismo nivel Construir un árbol BBS con las siguientes inserciones en el orden dado 74958 indicando claramente en cada inserción dónde y por qué se inserta cada nodo, así como por qué y cómo se debe rebalancear en su caso el árbol. Fórmulas: z ln x dx ? x (ln x ? 1) Hn ? 1 ? 1 1 1 ? ? ... 2 3 n Hn ? ln n ? ? ? 1 ? ... 2n ESTRUCTURAS DE DATOS Y ALGORITMOS Código de I.S: 402029 Código de I.G: 412020 UNIVERSIDAD NACIONAL DE EDUCACION A DISTANCIA Segunda Semana Dpto. de Informática y Automática Facultad de Ciencias Febrero 2001 Duración: 2 horas Esta hoja de enunciados debe ser entregada con los siguientes datos: Nombre: .......................................................................................................................... Indique claramente la Ingeniería (Sistemas o Gestión) en la que está matriculado. Indique claramente el Centro Asociado en el que está matriculado. NOTA: Para la realización de este examen NO se permite el uso de Calculadora ni de ningún tipo de material. ?????? 1.- Realizar detalladamente el análisis del costo de la clasificación por partición, suponiendo que un pivote de valor aleatorio. Téngase en cuenta que el coste vendrá dado por dos llamadas recursivas más el tiempo que transcurre en la partición. 2.- Explicar el método de clasificación por montón describiendo la definición de montón de Williams, la manera de construir un montón in situ de Floyd y el algoritmo de clasificación. Usar para ello el siguiente arreglo inicial 44 55 12 42 94 18 6 67 Completar el programa 2 (en Modula-2) para que realice el desplazamiento de Floyd y desarrollar el segmento de programa que realiza la construcción de Floyd de un montón. PROCEDURE sift(L,R: index); VAR i,j:index; x: item; BEGIN i:=L; j:=2*L; x:=a[L]; IF (j<R) & ....................THEN j:=j+1 END; WHILE (j<=R) & .............. DO .............; i:=j; .............. IF (j<R) &.................. THEN j:=j+1 END END ......... END sift 3.- Definir un árbol perfectamente balanceado. Proponer una estructura de nodo y programar un procedimiento en Modula-2 que construya un árbol perfectamente balanceado con llave números enteros y tal que construya el árbol sin necesidad de conocer previamente el número de nodos a insertar. Explicar detalladamente cómo se construye el árbol siguiendo las sentencias del algoritmo. Ilustrarlo construyendo el árbol para la siguiente secuencia 8 9 11 15 19 20 21 1 7 4.- En la figura 1 se presenta un árbol B de orden 2. Teniendo en cuenta que un árbol B de orden n tiene las siguientes características: 1.- Cada página contiene a lo sumo 2n elementos. 2.- Cada página, excepto la de la raíz, contiene al menos n elementos. 3.- Cada página es una página de hoja (no tiene descendientes o tiene m+1 descendientes siendo m el número de llaves en esta página) 4.- Todas las páginas de hoja aparecen en el mismo nivel. explicar detalladamente el proceso de inserción sucesiva de los siguientes valores 38, 24, 45, 25 indicando claramente la razón por la que es necesario cada paso del proceso. 10 20 30 40 5 7 8 13 15 18 22 26 27 32 35 42 46 Figura 1 Fórmulas: z ln x dx ? x (ln x ? 1) Hn ? 1 ? 1 1 1 ? ? ... 2 3 n Hn ? ln n ? ? ? 1 ? ... 2n