Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Examenes Resueltos EDA PDF
Examenes Resueltos EDA PDF
RESUELTOS
ESTRUCTURA
DE DATOS
Y ALGORITMOS
INFORMTICA
SISTEMAS
Y GESTIN
DELEGACIN DE ALUMNOS
CENTRO ASOCIADO DE BALEARES
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 1995
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
1.- Explicar detalladamente el mtodo de seleccin directa utilizando para ello el siguiente arreglo
inicial.
46
57
14
44
96
20
70
Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de seleccin
directa.
Realizar detalladamente el anlisis del algoritmo, calculando el nmero de comparaciones y de
movimientos.
PROCEDURE seleccion_directa;
VAR i,j,k:index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF .................. THEN ...........; ............. END;
END;
..................; ..................
END;
END;
Programa 1
ln x dx = x (ln x 1)
1 1
1
+ +...
2 3
n
1
Hn = ln n + +
...
2n
Hn = 1 +
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Primera Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Enero 1996
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- Explicar detalladamente el mtodo de Knuth-Morris-Pratt (KMP) para encontrar una palabra
en un texto base mostrando claramente cmo se realiza la comparacin de caracteres. Indicar las
ventajas frente al mtodo de bsqueda directa de cadena y cmo se calcula su tabla de distancias.
Implementar en Modula-2 el segmento de cdigo para calcular dicha tabla.
2.- Explicar en qu consiste el mtodo de clasificacin por mezcla directa. Ilustrarlo mediante la
siguiente secuencia
46 57 14
44 96 20
70
3.- Realizar los siguientes procedimientos en Modula-2, definiendo las estructuras adecuadas para
los tipos de datos que se indican.
a) Procedimiento iterativo para imprimir una lista enlazada con implementacin dinmica.
b) Procedimiento recursivo para imprimir una lista enlazada con implementacin dinmica.
c) Procedimiento para imprimir una pila con implementacin esttica.
d) Procedimiento para imprimir una cola con implementacin dinmica.
4.- Explicar la organizacin de rboles de bsqueda ptimos ilustrndolo mediante un ejemplo.
Definir claramente la longitud de trayectoria pesada y la longitud acumulada de trayectoria pesada.
Indicar las propiedades fundamentales de los rboles de bsqueda ptimos.
Frmulas:
ln x dx ? x (ln x ? 1)
1 1
1
? ? ...
2 3
n
1
Hn ? ln n ? ? ?
? ...
2n
Hn ? 1 ?
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Segunda Semana
Febrero 1996
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- Explicar detalladamente en qu consiste la estructura de registros con variantes. Aplicarlo a la
estructuracin de los datos para calcular distancias con coordenadas cartesianas y polares,
indicando las diferencias de uso respecto al caso de utilizar dos registros sin variantes. Realizar las
declaraciones de tipos necesarias en Modula-2.
2.- Explicar detalladamente el mtodo de clasificacin por particin (clasificacin rpida), indicando
claramente las ideas en que se basa el algoritmo. Utilizar el siguiente arreglo inicial para mostrar su
funcionamiento.
58 69 26
66 108 32 20 82
Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de
clasificacin rpida recursiva.
PROCEDURE rapida;
PROCEDURE sort(L,R : index);
VAR i,j : index; w,x : item;
BEGIN
i:=.........; j:=.........;
x:=...........................
REPEAT
WHILE ........ DO i:=i+1 END;
WHILE ........ DO j:=j-1 END;
IF i <= j THEN ........; ........; .........;
i:=i+1; j:=j-1; END
UNTIL i>j;
IF L < j THEN ...........END;
IF I < R THEN ...........END;
END sort;
BEGIN
sort(..........);
END rapida;
Programa 1
Realizar detalladamente el anlisis del comportamiento del proceso de particin. Explicar las
limitaciones de la clasificacin rpida.
3.- Se tiene una lista enlazada que almacena nmeros enteros. Realizar un procedimiento en
Modula-2 que suprima de la lista todos los elementos mayores que uno dado como lmite. Por
ejemplo, si la lista inicial es
lista
56
36
95
13
25
69
lista
36
13
25
11
15 19 20
21 1
Frmulas:
ln x dx ? x (ln x ? 1) ; Hn ? 1 ?
1 1
1
1
? ? ... ; Hn ? ln n ? ? ?
? ...
2 3
n
2n
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 1996
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- Explicar detalladamente en qu consiste la estructura de registros con variantes. Aplicarlo a la
estructuracin de los datos para calcular distancias con coordenadas cartesianas y polares,
indicando las diferencias de uso respecto al caso de utilizar dos registros sin variantes. Realizar las
declaraciones de tipos necesarias en Modula-2.
2.- a) Explicar detalladamente el mtodo de insercin binaria utilizando para ello el siguiente arreglo
inicial.
46 57 14
44 96 20
70
b) Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de
insercin binaria.
c) Realizar el anlisis del programa 1, calculando el nmero de comparaciones y de
movimientos.
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;
Programa 1
3.- Se tiene una lista enlazada que almacena nmeros enteros. Realizar un procedimiento en
Modula-2 que suprima de la lista todos los elementos mayores que uno dado como lmite. Por
ejemplo, si la lista inicial es
lista
56
36
95
13
25
69
lista
36
13
25
4.- Explicar detalladamente en qu consisten las tablas de transformacin de llaves (hashing), cules
son sus caractersticas y las ideas fundamentales necesarias para elegir una funcin de
transformacin. Explicar qu es una colisin y cmo se realiza el manejo de colisiones en general.
Detallar la exploracin lineal y la cuadrtica.
Frmulas:
ln x dx ? x (ln x ? 1)
1 1
1
? ? ...
2 3
n
1
Hn ? ln n ? ? ?
? ...
2n
Hn ? 1 ?
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Primera Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Enero 1997
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- Para encontrar la primera presencia de una palabra en un texto se dispone de tres algoritmos: el
mtodo de bsqueda directa de cadena, el mtodo de Knuth-Morris-Pratt (KMP) y el algoritmo
Boyer-Moore (BM).
a) Indicar cul de ellos utilizara para encontrar una palabra en un texto con 10000 caracteres.
Utilizara el mismo si el texto fuese de 50 caracteres?. Explique su eleccin en cada caso razonando
comparativamente, es decir, mostrando sus ventajas respecto a los otros mtodos.
b) Explicar claramente cmo se realiza la comparacin de caracteres en el algoritmo de BoyerMoore y cmo se calcula su tabla de distancias. Implementar en Modula-2 el segmento de cdigo
para calcular dicha tabla.
2.- El programa 1 muestra el procedimiento en Modula-2 correspondiente a un mtodo directo de
clasificacin de arreglos.
a) Deducir cul de ellos es (insercin, seleccin o intercambio)., explicando detalladamente su
mecanismo. Utilizar para ello el siguiente arreglo inicial.
46 57 14
44 96 20
70
PROCEDURE incognita;
VAR i,j: index;
BEGIN
FOR i:=2 TO n DO
a[0]:=a[i]; j:=i;
WHILE a[0]<a[j-1] DO a[j]:=a[j-1];
a[j]:=a[0];
END
j:=j-1;
END;
END incognita
Programa 1
3.- Explicar detalladamente la Estructura de Datos Abstracta denominada Cola, especificando su
definicin, manejo y aplicacin.
Realizar en Modula-2 las definiciones de tipos y todas las funciones y/o procedimientos para su
implementacin esttica.
Mostrar un ejemplo en el que sea ms adecuada la implementacin esttica que la dinmica.
4.- Definir un rbol perfectamente balanceado. Programar un procedimiento en Modula-2 que
construya un rbol perfectamente balanceado con n nodos y llave nmeros enteros. Explicar
detalladamente cmo se construye el rbol siguiendo las sentencias del algoritmo. Ilustrarlo
construyendo el rbol para la siguiente secuencia
Frmulas:
ln x dx ? x (ln x ? 1)
1 1
1
? ? ...
2 3
n
1
Hn ? ln n ? ? ?
? ...
2n
Hn ? 1 ?
11
15 19 20
21 1
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Segunda Semana
Febrero 1997
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- a) Explicar detalladamente el mtodo de insercin binaria utilizando para ello el siguiente arreglo
inicial.
46 57 14
44 96 20
70
b) Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de
insercin binaria.
c) Realizar el anlisis del programa 1, calculando el nmero de comparaciones y de
movimientos.
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;
Programa 1
Frmulas:
ln x dx ? x (ln x ? 1) ; Hn ? 1 ?
1 1
1
1
? ? ... ; Hn ? ln n ? ? ?
? ...
2 3
n
2n
ESTRUCTURAS DE DATOS Y
ALGORITMOS
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 1997
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- Explicar detalladamente el mtodo de seleccin directa utilizando para ello el siguiente arreglo
inicial.
46 57 14
44 96 20
70
Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de seleccin
directa.
Realizar detalladamente el anlisis del algoritmo, calculando el nmero de comparaciones y de
movimientos.
PROCEDURE seleccion_directa;
VAR i,j,k:index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF .................. THEN ...........; ............. END;
END;
..................; ..................
END;
END;
Programa 1
44 55 12
42 94 18
67
Programa 2
3.- En la figura 1 se presentan dos situaciones iniciales de rboles AVL. Explicar detalladamente el
efecto de la insercin del dato que se indica, especificando por qu hay necesidad o no de
rebalanceo y detallar el proceso de rebalanceo hasta alcanzar la situacin final adecuada.
5
En el rbol (a) se inserta un dato de valor 1. En el rbol (b) se inserta un dato de valor
4.- Explicar en qu consisten las tranformaciones de llaves (hashing) y realizar el anlisis de la
tranformacin de llaves indicando el nmero esperado de transformaciones requeridas.
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Primera Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Enero 1998
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
??????
1.- Realizar detalladamente el anlisis del algoritmo de seleccin directa (Programa 1).
PROCEDURE seleccion_directa;
VAR i,j,k: index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:= x
END;
END seleccion_directa
Programa 1
2.- Explicar el fundamento de la clasificacin polifsica. Utilizar como ejemplo la siguiente
distribucin de 21 corridas con tres variables de secuencia:
f1
f2
f3
13 8
Explicar cualitativa y analticamente cules son las distribuciones iniciales de corridas para las
que la clasificacin polifsica funcione bien con tres secuencias (utilizar el ejemplo propuesto).
3.- En la figura 1 se presentan dos rboles. Teniendo en cuenta que un rbol B de orden n tiene las
siguientes caractersticas:
1.- Cada pgina contiene a lo sumo 2n elementos.
20
7 10 15 18
20
26 30 35 40
7 10 15 21
Figura 1.a.
30 35 40
Figura 1.b
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Segunda Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Febrero 1998
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
??????
1.- Realizar detalladamente el anlisis del siguiente algoritmo de clasificacin de arreglos.
PROCEDURE incognita;
VAR i,j: index;
BEGIN
FOR i:=2 TO n DO
a[0]:=a[i]; j:=i;
WHILE a[0]<a[j-1] DO a[j]:=a[j-1];
a[j]:=a[0];
END
j:=j-1;
END;
END incognita
3.- 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 caractersticas:
1.- Cada pgina contiene a lo sumo 2n elementos.
2.- Cada pgina, excepto la de la raz, contiene al menos n elementos.
3.- Cada pgina es una pgina de hoja (no tiene descendientes o tiene m+1 descendientes
siendo m el nmero de llaves en esta pgina)
4.- Todas las pginas de hoja aparecen en el mismo nivel.
explicar detalladamente el proceso de insercin sucesiva de los siguientes valores
38, 24, 45, 25
indicando claramente la razn por la que es necesario cada paso del proceso.
10 20 30 40
5
13 15 18
22
26
27
32
35
42
46
Figura 1
4.- Explicar detalladamente en qu consisten las tablas de transformacin de llaves (hashing), cules
son sus caractersticas y las ideas fundamentales necesarias para elegir una funcin de
transformacin. Explicar qu es una colisin y cmo se realiza el manejo de colisiones en general.
Detallar la exploracin lineal y la cuadrtica.
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 1998
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material.
??????
1.- Realizar detalladamente el anlisis del algoritmo (mejor caso , peor caso y caso promedio) de
seleccin directa.
PROCEDURE seleccion_directa;
VAR i,j,k: index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:= x
END;
END seleccion_directa
44 55 12
42 94 18
67
Programa 2
3.- Definir un rbol perfectamente balanceado. Proponer una estrucutra de nodo y programar un
procedimiento en Modula-2 que construya un rbol perfectamente balanceado con llave nmeros
enteros y tal que construya el rbol sin necesidad de conocer previamente el nmero de nodos a
insertar. Explicar detalladamente cmo se construye el rbol siguiendo las sentencias del algoritmo.
Ilustrarlo construyendo el rbol para la siguiente secuencia
11
15 19 20
21 1
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 caractersticas:
1.- Cada pgina contiene a lo sumo 2n elementos.
2.- Cada pgina, excepto la de la raz, contiene al menos n elementos.
3.- Cada pgina es una pgina de hoja (no tiene descendientes o tiene m+1 descendientes
siendo m el nmero de llaves en esta pgina)
4.- Todas las pginas de hoja aparecen en el mismo nivel.
explicar detalladamente el proceso de insercin sucesiva de los siguientes valores
38, 24, 45, 25
indicando claramente la razn por la que es necesario cada paso del proceso.
10 20 30 40
5
Frmulas:
13 15 18
22
26
27
32
35
42
46
Figura 1
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
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Enero 1999
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
Error! Marcador no definido.Error! Marcador no definido.Error! Marcador no
definido.Error! Marcador no definido.Error! Marcador no definido.Error! Marcador no
definido.
1.- Realizar detalladamente el anlisis del algoritmo (mejor caso , peor caso y caso promedio) de
seleccin directa.
PROCEDURE seleccion_directa;
VAR i,j,k: index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:= x
END;
END seleccion_directa
Programa 1
2.- Explicar detalladamente el mtodo de clasificacin por particin (clasificacin rpida), indicando
claramente las ideas en que se basa el algoritmo. Utilizar el siguiente arreglo inicial para mostrar su
funcionamiento.
58 69 26
66 108 32 20 82
Completar el cdigo del programa 2 (en Modula-2) para que realice el algoritmo de
clasificacin rpida recursiva.
PROCEDURE rapida;
PROCEDURE sort(L,R : index);
VAR i,j : index; w,x : item;
BEGIN
i:=.........; j:=.........;
x:=...........................
REPEAT
WHILE ........ DO i:=i+1 END;
WHILE ........ DO j:=j-1 END;
IF i <= j THEN ........; ........; .........;
i:=i+1; j:=j-1; END
UNTIL i>j;
IF L < j THEN ...........END;
IF I < R THEN ...........END;
END sort;
BEGIN
sort(..........);
END rapida;
Programa 2
3.- En la figura 1 se presentan dos situaciones iniciales de rboles AVL. Explicar detalladamente el
efecto de la insercin del dato que se indica, especificando por qu hay necesidad o no de
rebalanceo y detallar el proceso de rebalanceo hasta alcanzar la situacin final adecuada.
5
En el rbol (a) se inserta un dato de valor 1. En el rbol (b) se inserta un dato de valor 3
4.- Explicar la organizacin de rboles de bsqueda ptimos ilustrndolo mediante un ejemplo.
Definir claramente la longitud de trayectoria pesada y la longitud acumulada de trayectoria pesada.
Indicar las propiedades fundamentales de los rboles de bsqueda ptimos
Frmulas:
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
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Febrero 1999
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn tipo
de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
3.- Realizar los siguientes procedimientos en Modula-2, definiendo las estructuras adecuadas para
los tipos de datos que se indican.
a) Procedimiento iterativo para imprimir una lista enlazada con implementacin dinmica.
b) Procedimiento recursivo para imprimir una lista enlazada con implementacin dinmica.
c) Procedimiento para imprimir una pila con implementacin esttica.
d) Procedimiento para imprimir una cola con implementacin dinmica.
4.- Un rbol B Binario Simtrico (BBS) se define como aquel que posee las siguientes
propiedades:
1) Todo nodo contiene una llave y, como mximo, dos (apuntadores a) subrboles.
2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos
horizontales en ninguna trayectoria de bsqueda.
3) Todos los nodos terminales (nodos sin descendientes) aparecen en el mismo nivel (terminal)
Construir un rbol BBS con las siguientes inserciones en el orden dado
1/2/3/4/5/6/7
indicando claramente en cada insercin dnde y por qu se inserta cada nodo, as como por qu y
cmo se debe rebalancear en su caso el rbol.
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Original
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 1999
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
??????
1.- Realizar detalladamente el anlisis del algoritmo de insercin binaria (Programa 1).
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;
Programa 1
2.- Explicar el fundamento de la clasificacin polifsica. Utilizar como ejemplo la siguiente
distribucin de 21 corridas con tres variables de secuencia:
f1
f2
f3
13 8
Explicar cualitativa y analticamente cules son las distribuciones iniciales de corridas para las
que la clasificacin polifsica funcione bien con tres secuencias (utilizar el ejemplo propuesto).
3.- En la figura 1 se presentan dos situaciones iniciales de rboles AVL. Explicar detalladamente el
efecto de la insercin del dato que se indica, especificando por qu hay necesidad o no de
rebalanceo y detallar el proceso de rebalanceo hasta alcanzar la situacin final adecuada.
En el rbol (a) se inserta un dato de valor 1. En el rbol (b) se inserta un dato de valor 3
4.- Un rbol B Binario Simtrico (BBS) se define como aquel que posee las siguientes
propiedades:
1) Todo nodo contiene una llave y, como mximo, dos (apuntadores a) subrboles.
2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos
horizontales en ninguna trayectoria de bsqueda.
3) Todos los nodos terminales (nodos sin descendientes) aparecen en el mismo nivel (terminal)
Construir un rbol BBS con las siguientes inserciones en el orden dado
1/2/3/4/5/6/7
indicando claramente en cada insercin dnde y por qu se inserta cada nodo, as como por qu y
cmo se debe rebalancear en su caso el rbol.
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Primera Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Enero 2000
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
Error! Marcador no definido.Error! Marcador no definido.Error! Marcador no
definido.Error! Marcador no definido.Error! Marcador no definido.Error! Marcador no
definido.
1.- El programa 1 muestra el cdigo en Mdula 2 del algoritmo de insercin directa. Realizar el
anlisis detallado calculando el nmero de comparaciones y de movimientos para los casos mejor,
peor y promedio.
PROCEDURE insercin_directa;
VAR i,j: index;
BEGIN
FOR i:=2 TO n DO
a[0]:=a[i]; j:=i;
WHILE a[0]<a[j-1] DO a[j]:=a[j-1];
a[j]:=a[0];
END
j:=j-1;
END;
END insercin_directa
Programa 1
2.- Explicar en qu consiste el mtodo de clasificacin por mezcla natural, explicando para ello los
conceptos necesarios en este tipo de clasificacin. Ilustrarlo mediante la siguiente secuencia
17 31 05 59 13 41 43 67 11 23 29 47 03 07 71 02 19 57 37 61
Describir qu consideraciones son necesarias para implementar los algoritmos de copia y
mezcla.
Indicar qu debe tenerse en cuenta para que el algoritmo est bien programado. Ilustrarlo
mediante la siguiente secuencia
03 02 05 11 07 13 19 17 23 31 29 37 43 41 47 59 57 61 71 67
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 nmeros
enteros y tal que construya el rbol sin necesidad de conocer previamente el nmero de nodos a
insertar. Explicar detalladamente cmo se construye el rbol siguiendo las sentencias del algoritmo.
Ilustrarlo construyendo el rbol para la siguiente secuencia
11
15 19 20
21 1
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 caractersticas:
1.- Cada pgina contiene a lo sumo 2n elementos.
2.- Cada pgina, excepto la de la raz, contiene al menos n elementos.
3.- Cada pgina es una pgina de hoja (no tiene descendientes o tiene m+1 descendientes
siendo m el nmero de llaves en esta pgina)
4.- Todas las pginas de hoja aparecen en el mismo nivel.
explicar detalladamente el proceso de insercin sucesiva de los siguientes valores
38, 24, 45, 25
indicando claramente la razn por la que es necesario cada paso del proceso.
10 20 30 40
5
13 15 18
22
26
27
32
35
42
46
Figura 1
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Segunda Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Febrero 2000
Duracin: 2 hora
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn tipo
de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
j:=j-1;
END;
END incognita
Programa 1
2.- Realizar los siguientes procedimientos en Modula-2, definiendo las estructuras adecuadas para
los tipos de datos que se indican.
a) Procedimiento iterativo para imprimir una lista enlazada con implementacin dinmica.
b) Procedimiento recursivo para imprimir una lista enlazada con implementacin dinmica.
c) Procedimiento para imprimir una pila con implementacin esttica.
d) Procedimiento para imprimir una cola con implementacin dinmica.
.
3.- En la figura 1 se presentan dos situaciones iniciales de rboles AVL. Explicar detalladamente el
efecto de la insercin del dato que se indica, especificando por qu hay necesidad o no de
rebalanceo y detallar el proceso de rebalanceo hasta alcanzar la situacin final adecuada.
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Original
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 2000
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que est matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de ningn
tipo de material. Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
??????
1.- Realizar detalladamente el anlisis del algoritmo (mejor caso , peor caso y caso promedio) de
seleccin directa.
PROCEDURE seleccion_directa;
VAR i,j,k: index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:= x
END;
END seleccion_directa
2.- Explicar
el
mtodo
de
clasificacin por montn describiendo la definicin de montn de Williams, la manera de construir un
montn in situ de Floyd y el algoritmo de clasificacin. Usar para ello el siguiente arreglo inicial
44 55 12
42 94 18
67
3.- Un rbol B Binario Simtrico (BBS) se define como aquel que posee las siguientes
propiedades:
1) Todo nodo contiene una llave y, como mximo dos apuntadores a subrboles.
2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos
horizontales en ninguna trayectoria de bsqueda.
3) Todos los nodos terminales (nodos sin descendientes) aparecen en el mismo nivel (terminal)
Construir un rbol BBS con las siguientes inserciones en el orden dado
74958
indicando claramente en cada insercin dnde y por qu se inserta cada nodo, as como por qu y
cmo se debe rebalancear en su caso el rbol.
4.- Explicar detalladamente en qu consisten las tablas de transformacin de llaves (hashing), cules
son sus caractersticas y las ideas fundamentales necesarias para elegir una funcin de
transformacin. Explicar qu es una colisin y cmo se realiza el manejo de colisiones en general.
Detallar la exploracin lineal y la cuadrtica.
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Primera Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Enero 2001
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
Indique claramente el Centro Asociado en el que est matriculado.
46 57 14
44 96 20
70
3.- Definir el TDA pila. Detallar sus caractersticas. Realizar la implementacin esttica de sus
operadores bsicos.
4.- Un rbol B Binario Simtrico (BBS) se define como aquel que posee las siguientes
propiedades:
1) Todo nodo contiene una llave y, como mximo dos apuntadores a subrboles.
2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos
horizontales en ninguna trayectoria de bsqueda.
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 insercin dnde y por qu se inserta cada nodo, as como por
qu y cmo se debe rebalancear en su caso el rbol.
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Segunda Semana
Dpto. de Informtica y Automtica
Facultad de Ciencias
Febrero 2001
Duracin: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
Indique claramente la Ingeniera (Sistemas o Gestin) en la que est matriculado.
Indique claramente el Centro Asociado en el que est matriculado.
NOTA: Para la realizacin de este examen NO se permite el uso de Calculadora ni de
ningn tipo de material.
??????
1.- Realizar detalladamente el anlisis del costo de la clasificacin por particin, suponiendo
que un pivote de valor aleatorio. Tngase en cuenta que el coste vendr dado por dos
llamadas recursivas ms el tiempo que transcurre en la particin.
2.- Explicar el mtodo de clasificacin por montn describiendo la definicin de montn de
Williams, la manera de construir un montn in situ de Floyd y el algoritmo de clasificacin.
Usar para ello el siguiente arreglo inicial
44 55 12
42 94 18
67
11
15 19 20
21 1
10 20 30 40
5
13 15 18
22
26
27
32
35
42
46
Figura 1
Frmulas:
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
Cdigo de I.S: 402029
Cdigo de I.G: 412020
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Original
Dpto. de Informtica y Automtica
Facultad de Ciencias
Septiembre 2001
Duracin: 2 horas
j:=j-1;
END;
END insercin_directa
2.- Realizar detalladamente el anlisis del costo de la clasificacin por particin, suponiendo un
pivote de valor aleatorio. Tngase en cuenta que el coste vendr dado por dos llamadas recursivas
ms el tiempo que transcurre en la particin.
3.- Calcular el nmero de comparaciones promedio para buscar un nodo en un rbol binario de
bsqueda.
3.- Un rbol B Binario Simtrico (BBS) se define como aquel que posee las siguientes
propiedades:
1) Todo nodo contiene una llave y, como mximo dos apuntadores a subrboles.
2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos
horizontales en ninguna trayectoria de bsqueda.
3) Todos los nodos terminales (nodos sin descendientes) aparecen en el mismo nivel (terminal)
Construir un rbol BBS con las siguientes inserciones en el orden dado
4261735
indicando claramente en cada insercin dnde y por qu se inserta cada nodo, as como por qu y
cmo se debe rebalancear en su caso el rbol.
Frmulas:
ln x dx ? x (ln x ? 1)
Hn ? 1 ?
1 1
1
? ? ...
2 3
n
Hn ? ln n ? ? ?
1
? ...
2n
SOLUCIONES
1) Solucin: A. Este ejercicio se encuentra resuelto en el texto base, pg 63.
2) Solucin: B. Este algoritmo corresponde a la seleccin directa. Se encuentra resuelto en el
texto base, pg 60.
3) Solucin: A. Este algoritmo corresponde a la seleccin directa. Se encuentra resuelto en el
texto base, pg 59.
4) Solucin: C. Se encuentra resuelto en el texto base, pg 55.
5) Solucin: A. Se encuentra resuelto en el texto base, pg 120.
6) Solucin: A. Se encuentra resuelto en el texto base, pg 135.
7) Solucin: D. La distribucin debe ser uniforme y adems depende del manejo de colisiones.
Ver el texto base, pg 139.
8) Solucin: B.
8
14 5
10 17 23 2
18 30 35 13 28 20 25 31 16 22
Distribucin 1:
8
5
14 3
9 1
2 18 30 35 20 25 31
10 17 23 13 28 16 22
Mezcla 1:
5
14 1
10 17 23 2
13 18 28 30 35 16 20 22 25 31
Distribucin 2:
5
1
8
3
9 14 2 13 18 28 30 35
10 17 23 16 20 22 25 31
Mezcla 2:
1
10 14 17 23 2
13 16 18 20 22 25 28 30 31 35
Distribucin 3:
1
2
3 5 8 9 10 14 17 23
13 16 18 20 22 25 28 30 2
13
Mezcla 3:
Ordenado
9) Solucin: A. .Se encuentra resuelto en el texto base, pg 157.
10) Solucin: D. Los TDAs slo pueden manejarse mediante los operadores bsicos y asociados.
Para imprimir una cola deben utilizarse los operadores Cola_vaca y Sacar_cola. En caso
contrario se estara rompiendo el encapsulamiento y la abstraccin del TDA.
11) Solucin: D.
El rbol es:
10
15
18
12) Solucin: D.
El rbol es:
10
15
18
13) Solucin: D. En la construccin del rbol de bsqueda se observa que en algunas inserciones ni el
nmero de nodos ni la altura de los subrboles izquierdo y derecho difieren como mximo en 1.
Por ejemplo, al insertar el valor 13, el nodo 16 (raz) tiene un subrbol izquierdo con 5 nodos y
un subrbol derecho con 3 nodos, con lo que ya no es perfectamente balanceado.
Por otro lado, al insertar el nodo 9, el subrbol con raz el 10 riene altura 2 a la izquierda (el 4 y el 9) y
0 a la derecha
14) Solucin: B o C. Se encuentra resuelto en el texto base, pg 231.
15) Solucin: A. Se encuentra resuelto en el texto base, pg 231. Puede observarse que tiene un
nodo a la derecha y ninguno a la izquierda
Pregunta TIPO A
1
A
2
B
3
A
4
C
5
A
6
A
7
D
8
B
9
A
10
D
11
D
12
D
13
D
14
B o C o ambas
15
A
16
C
17
A
18
A
19
C
20
C
TIPO B
C
A
B
A
A
C
A
D
B
D
D
B o C o ambas
D
D
C
C
A
B
A
B
TIPO C
B
D
B
B
B
C
B
A
A
D
D
D
A o C o ambas
D
B
A
A
C
C
A
SOLUCIONES
1) Solucin B. Este ejercicio se encuentra resuelto en el texto base, pg 86
2) Solucin D. Este ejercicio se encuentra resuelto en el texto base, pg 86: T(n)=2*T(n/2)+cn,
3) Solucin D. Este ejercicio se encuentra resuelto en el texto base, pg 85
4) Solucin D. Este ejercicio se encuentra resuelto en el texto base, pg 76
3, 8, 5, 9, 14, 23, 17, 13, 22
5) Solucin D.
Distribucin:
A= 8, 14, 3, 23, 13, 22, 2
B= 5, 9, 17, 4, 10
Primera mezcla: 5, 8, 9, 14, 3, 17, 23, 4, 10, 13, 22, 2
6) Solucin C. Este ejercicio se encuentra resuelto en el texto base, pg 133:
7) Solucin D. La primera eleccin debe realizarse entre mtodos de clasificacin de arreglos o
mtodos de clasificacin en memoria secundaria. Dado que se dispone de memoria primaria
suficiente es mejor utilizar estos algoritmos ya que siempre es ms rpido acceder a memoria
principal que a secundaria. Las comparaciones y los movimientos son siempre mucho ms
costosos en memoria secundaria.
La segunda eleccin debe realizarse entre mtodos directos de clasificacin de arreglos y
mtodos avanzados. Sern ms adecuados en funcin del tamao de los datos a tratar. En este
caso, el nmero de elementos (5000 a 10000) es lo suficientemente grande como para desestimar
los mtodos directos.
Por ltimo, queda por decidir qu mtodo avanzado utilizar. En este caso, el quicksort es
absolutamente desaconsejable ya que los valores de los datos no son muy diferentes, y por tanto
la probabilidad de elegir un pivote con un coste correspondiente al peor caso (cuadrtico) es
elevada. Por tanto, debera pensarse en utilizar la clasificacin por montn, o la Shell.
8) Solucin B. Este ejercicio se encuentra resuelto en el texto base, pg 139-140
9) Solucin B. El tratamiento de los TDA, una vez definido con sus operaciones bsicas y
auxiliares, es independiente de la implementacin (en otro caso no sera Abstracto). Por tanto el
pseudocdigo nunca depende de la implementacin.
10) Solucin C. Este ejercicio se encuentra resuelto en el texto base, pg 175-189
11) Solucin B. Este ejercicio se encuentra resuelto en el texto base, pg 221
12) Solucin D. Es necesario un rebalanceo LL en N (ver texto base, pg 221-223)
13) Solucin A. Este ejercicio se encuentra resuelto en el texto base, pg 237
14) Solucin C. ver texto base, pg 198
15) Solucin C. ver texto base, pg 244, 215
16) Solucin C. ver texto base, pg 216.
TIPO A
B
D
D
D
D
C
D
B
B
C
B
D
A
C
C
C
C
C
A
B
TIPO B
D
D
C
A
D
D
D
A
C
B
C
A
D
B
C
A
B
B
C
A
TIPO C
D
B
A
A
B
D
D
D
D
C
B
A
D
A
B
C
A
C
A
B
COMENTARIOS GENERALES
algoritmo de insercin segn un orden. Pgs. 28 - 34. La construccin del algoritmo debe
explicarse detalladamente tal y como se realiza en el texto base.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo., 201 - 202.
NOTAS:
1. Colores: Todo lo que no est en color negro son indicaciones adicionales. Es decir, las preguntas
del examen tal cual, figuran en negro. Cualquier cosa en otro color indica una anotacin incluida
por m, como las que describo a continuacin.
2. Leyenda (1): Antes de cada pregunta figura entre corchetes un cdigo indicando en qu examen
(o exmenes) ha salido. El formato es [aaAAm-n] , donde:
- aaAA son los aos del curso.
- m indica la convocatoria: E para enero (1 semana), F febrero (2 semana), S septiembre,
y R reserva (septiembre)
- n es el nmero de pregunta.
Ejemplo: [9798E-2] indica que se trata de la 2 pregunta del examen de enero (1 semana) del
curso 1997/1998.
3. Leyenda (2): Al final de cada pregunta (o apartado) he procurado colocar otro cdigo, esta vez
en color rojo, para indicar en qu captulo y pgina del libro se trata de esta pregunta. As, en la
pregunta [9596F-1], figura el cdigo [1.8;40] indicando que sta pregunta pertenece al captulo 1
(Estructuras de datos fundamentales), punto 8 (Variantes de estructuras del registro) y que viene
(empieza) en la pgina 40 en el libro.
EL TEMA III, segn consta en la gua del curso, est constituido por apuntes remitidos
por el profesor de la asignatura a los Centros Asociados. En este caso, la pgina la indico
precediendo AP al nmero de pgina de dichos apuntes, p.e.: [3.2;AP6]
[9596F-1] [9596S-1]
Explicar detalladamente en qu consiste la estructura de registros con variantes.
Aplicarlo a la estructuracin de los datos para calcular distancias con coordenadas
cartesianas y polares, indicando las diferencias de uso respecto al caso de utilizar dos
registros sin variantes. Realizar las declaraciones de tipos necesarias en Modula-2.
[1.8;40]
[9495E-1] [9697E-1]
Para encontrar la primera presencia de una palabra en un texto se dispone de tres
algoritmos: el mtodo de bsqueda directa de cadena, el mtodo de Knuth-Morris-Pratt
(KMP) y el algoritmo de Boyer-Moore (BM).
a) Indicar cul de ellos utilizara para encontrar una palabra en un texto con 10000
caracteres. Utilizara el mismo si el texto fuese de 50 caracteres?. Explique su eleccin
en cada caso razonando comparativamente, es decir, mostrando sus ventajas respecto a
los otros mtodos.
b) Explicar claramente cmo se realiza la comparacin de caracteres en el algoritmo
de Boyer-Moore y cmo se calcula su tabla de distancias. Implementar en Modula-2 el
segmento de cdigo para calcular dicha tabla.
[1.12.4;66] [1.12.5;68] [1.12.6;73]
[9596E-1] [9697R-1]
Explicar detalladamente el mtodo de Knuth-Morris-Pratt (KMP) para encontrar
una palabra en un texto base mostrando claramente cmo se realiza la comparacin de
caracteres. Indicar las ventajas frente al mtodo de bsqueda directa en cadena y cmo
se calcula su tabla de distancias. Implementar en Modula-2 el segmento de cdigo para
calcular dicha tabla.
[1.12.5;68] [1.12.4;66]
Pgina 1 de 8
albert@catworld.net
Preguntas Exmenes E.D.A.
[9697E-2]
El programa 1 muestra el procedimiento en Modula-2 correspondiente a un mtodo
directo de clasificacin de arreglos.
a) Deducir cul de ellos es (insercin, seleccin o intercambio)., explicando
detalladamente su mecanismo. Utilizar para ello el siguiente arreglo inicial.
[2.2.1;84]
46
57
14
44
96
20
70
57
14
44
96
20
70
b) Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo
de insercin binaria.
c) Realizar el anlisis del programa 1, calculando el nmero de comparaciones y de
movimientos.
PROCEDURE insercin_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;
Programa 1
[2.2.1;86]
albert@catworld.net
Pgina 2 de 8
[9697S-1] [9697R-2]
Explicar detalladamente el mtodo de seleccin directa utilizando para ello el
siguiente arreglo inicial.
46
57
14
44
96
20
70
Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de
seleccin directa.
Realizar detalladamente el anlisis del algoritmo, calculando el nmero de
comparaciones y de movimientos.
PROCEDURE seleccin_directa;
VAR i,j,k:index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF ................... THEN ...........; ............. END;
END;
..................; ..................
END;
END;
Programa 1
[2.2.2;87]
[9798E-1] [9798S-1] [9899E-1]
Realizar detalladamente el anlisis del algoritmo (mejor caso , peor caso y caso
promedio) de seleccin directa.
PROCEDURE seleccin_directa;
VAR i,j,k:index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:=x
END;
END seleccin_directa
[2.2.2;88]
[9697S-2] [9798S-2]
Explicar el mtodo de clasificacin por montn describiendo la definicin de
montn de Williams, la manera de construir un montn in situ de Floyd y el algoritmo
de clasificacin. Usar para ello el siguiente arreglo inicial.
[2.3.2;96]
44
55
12
42
94
18
67
Sigue en la prxima pgina...
albert@catworld.net
Pgina 3 de 8
69
26
66 108 32
20
82
Completar el cdigo del programa 1 (en Modula-2) para que realice el algoritmo de
clasificacin rpida recursiva.
[2.3.3;102]
PROCEDURE rapida;
PROCEDURE sort(L,R : index);
VAR i,j : index; w,x : item;
BEGIN
i:=.........; j:=.........;
x:=...........................
REPEAT
WHILE ........ DO i:=i+1 END;
WHILE ........ DO j:=j-1 END;
IF i <= j THEN ........; ........; .........;
i:=i+1; j:=j-1; END
UNTIL i>j;
IF L < j THEN ...........END;
IF I < R THEN ...........END;
END sort;
BEGIN
sort(..........);
END rapida;
Programa 1
Realizar detalladamente el anlisis del comportamiento del proceso de particin.
Explicar las limitaciones de la clasificacin rpida.
[2.3.3;103/104]
albert@catworld.net
Pgina 4 de 8
[9697R-3]
Explicar detalladamente el mtodo de clasificacin por insercin por incremento
decreciente (Shell). Completar el algoritmo dado en el programa 1 para que realice la
clasificacin Shell. Indicar cmo se aplica el arreglo inicial dado en el ejercicio 2.
[9697R-2]
PROCEDURE Shell;
CONST t=4;
VAR i,j,k,s : index;
x : item; m : 1..t;
h : ARRAY [1..t] OF INTEGER;
BEGIN
h[i]:=9; h[2]:=5; h[3]:=3; h[4]:=1;
FOR i:=k+1 TO n DO
k:=h[m]; s:=-k;
FOR i:=k+1 TO n DO
x:=..........;
j:=...........;
IF s=........ THEN s:=........... END;
s:=.........; a[s]:=............;
WHILE x<a[j] DO .....................; j:=............ END;
a[j+k]:=.......;
END
END
END
Programa 1
[2.3.1;93]
[9596E-2] [9798F-2]
Explicar en qu consiste el mtodo de clasificacin por mezcla directa. Ilustrarlo
mediante la siguiente secuencia.
46
57
14
44
96
20
70
[9697F-2] [9798E-2]
Explicar el fundamento de la clasificacin polifsica. Utilizar como ejemplo la
siguiente distribucin de 21 corridas con tres variables de secuencia:
f1
f2
f3
13 8
Explicar cualitativa y analticamente cules son las distribuciones iniciales de
corridas para las que la clasificacin polifsica funcione bien con tres secuencias (utilizar
el ejemplo propuesto).
[2.4.4;126]
albert@catworld.net
Pgina 5 de 8
[9697E-3]
Explicar detalladamente la Estructura de Datos Abstracta denominada Cola,
especificando su definicin, manejo y aplicacin. [3.2;AP2]
Realizar en Modula-2 las definiciones de tipos y todas las funciones y/o
procedimientos para su implementacin esttica. [3.2;AP6/12]
Mostrar un ejemplo en el que sea ms adecuada la implementacin esttica que la
dinmica.
[3.2;AP28]
[9596E-3]
[9596F-3] [9596S-3]
Se tiene una lista enlazada que almacena nmeros enteros. Realizar un
procedimiento en Modula-2 que suprima de la lista todos los elementos mayores que uno
dado como lmite. Por ejemplo, si la lista inicial es
lista
56
36
95
13
25
69
lista
36
13
25
[3.3;AP14]
[9495E-3]
Se dispone de dos listas enlazadas construidas dinmicamente con nodos del mismo
tipo base y de igual longitud. Realizar un procedimiento en Modula-2 que determine si
ambas listas son iguales o diferentes. Sern iguales si el campo llave del primer nodo
tiene el mismo valor en ambas listas y el campo llave del segundo nodo tiene el mismo
valor en ambas listas y as sucesivamente.
[4.3;195]
albert@catworld.net
Pgina 6 de 8
11
15
19
20
21
[4.4.1;215]
[9798S-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 nmeros enteros y tal que construya el rbol sin necesidad de
conocer previamente el nmero de nodos a insertar. Explicar detalladamente cmo se
construye el rbol siguiendo las sentencias del algoritmo. Ilustrarlo construyendo el rbol
para la siguiente secuencia.
8
11
15
19
20
21
[4.4.1;215]
[9798E-3]
En la figura 1 se presentan dos rboles. Teniendo en cuenta que un rbol B de orden
n tiene las siguientes caractersticas:
1.- Cada pgina contiene a los sumo 2n elementos.
2.- Cada pgina, excepto la de la raz, contiene al menos n elementos.
3.- Cada pgina es una pgina de hoja (no tiene descendientes o tiene m+1
descendientes siendo m el nmero de llaves en esta pgina.
4.- Todas las pginas hoja aparecen en el mismo nivel.
Determinar, indicando explcitamente las razones, si son o no rboles B de orden 2.
Si alguno de ellos es un rbol B de orden 2, explicar detalladamente el proceso de
insercin del valor 22 en l, indicando claramente la razn por la que es necesario cada
paso del proceso.
Sigue en la prxima pgina...
albert@catworld.net
Pgina 7 de 8
Si alguno de ellos no es un rbol B de orden 2, proponga un rbol que lo sea con esos
datos.
20
7 10 15 18
20
26 30 35 40
7 10 15 21
30
35
40
[4.7.1;257]
[9798F-3] [9798S-3]
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 caractersticas:
1.- Cada pgina contiene a los sumo 2n elementos.
2.- Cada pgina, excepto la de la raz, contiene al menos n elementos.
3.- Cada pgina es una pgina de hoja (no tiene descendientes o tiene m+1
descendientes siendo m el nmero de llaves en esta pgina.
4.- Todas las pginas hoja aparecen en el mismo nivel.
explicar detalladamente el proceso de insercin sucesiva de los siguientes valores
38, 24, 45, 25
indicando claramente la razn por la que es necesario cada paso del proceso.
10 20 30 40
5
13 15 18
22 26 27
32
36
42
48
[4.7.1;262]
albert@catworld.net
Pgina 8 de 8
Insercin
Directa
Inserci
n
Binaria
Seleccin
Directa
Intercam
bio
Directo
Sacudid
a
Shel
Qu hace?
Considera el primer elemento
Comp.
ordenado y a partir de esa premisa
va insertando los elementos en el
sitio y desplazando el resto hacia
Mov.
la derecha
Como insercin directa, pero la
bsqueda del sitio la hace por
dicotoma.
Montn
C min = n 1
M min = 2(n M
i 1 =
i =1
max
Coste Medio
+ n 2
C
2
+ 3n 4
2
prom
prom
1
C
2
max
+ n 2
4
+ 9 n 10
4
C min = n 1 ( I .B.) = (n 2 )
Mov.
Como la directa
Como la directa
Como la directa
max
Comp.
n
2
Comp.
C =
Mov.
M min = 0
Comp.
= 3 ( n 1) +
max
C =
max
C min = 3(n 1)
n2
4
n
2
= 3C = 3
C =
n
n
2
C min = n 1 C max = n k1 n
M
C
n (ln n + )
prom
= 0 . 577216
donde
prom
prom
n
2
1
M
=
2
1
(n
2
max
...
= 3
n (k
n
4
+ ln n ))
t n2
hasta ht=1. Es dificil decidir la
asinttico O i 1 ( n 2 )
O
(n 2 )
i=1
h
mejor secuencia:
(siendo n
i
i =1
h k = 2 k 1 = 1 , 3 , 5 , 7 ,... potencia
de 2)
i
i
Mov.
QuickSort
= 9 4
9 2
+ 1
C prom
= 2 n log n O ( n log(log n ))
??????
??????
??????
Este algoritmo es una combinacin Observaci El algoritmo es de naturaleza recursiva, as que se usan la famosas frmulas descritas en [Pea ]
del intercambio directo y de divide ones
y vencers. Elige un pivote al
azar y recorre el vector desde la Coste
n
T ( n ) = O ( n log
( )
2T n
+ cn
derecha buscando elementos
asinttico T n =
2
(
)
(
1
)
T
n
T
c
i = O(n 2 )
=
+
mayores que el pivote para
= O n log n
i=2
intercambiarlos con los valores
menores a la izquierda del pivote.
Hasta encontrarse el incremento y
el decremento y luego vuelve a
comenzar con cada una de las
particiones.
( )
)
n)