Está en la página 1de 81

EXMENES

RESUELTOS
ESTRUCTURA
DE DATOS
Y ALGORITMOS
INFORMTICA
SISTEMAS
Y GESTIN
DELEGACIN DE ALUMNOS
CENTRO ASOCIADO DE BALEARES

EXMENES ESTRUCTURA DE DATOS Y ALGORTMOS

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

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.- Establecer las definiciones de las estructuras adecuadas para implementar una secuencia pila
(FILO) mediante asignacin dinmica. Implemetar en Modula-2 los procedimientos meter() y
sacar() que se definen sobre dicha estructura.
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 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

Explicar cmo se realiza la clasificacin por mezcla en un arreglo y discutir si su aplicacin es o


no ms adecuada que el mtodo de clasificacin rpida.

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

Dpto. de Informtica y Automtica


Facultad de Ciencias

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

y el nmero dado como lmite es 43, la lista resultante es

lista

36

13

25

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

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

y el nmero dado como lmite es 43, la lista resultante es

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

b) Realizar el anlisis del programa 1, calculando el nmero de comparaciones y de


movimientos para los casos mejor, peor y promedio.

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

Dpto. de Informtica y Automtica


Facultad de Ciencias

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

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.

(a) Insertar dato:=1

(b) Insertar dato:=3

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
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

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

Completar el programa 2 (en Modula-2) para que realice el desplazamiento de Floyd y


desarrollar el segmento de programa que realiza la construccin de Floyd de un montn.
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

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

(b) Insertar dato:=3

(a) Insertar dato:=1

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.

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.
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.
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

Figura 1.a.

30 35 40

Figura 1.b

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
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

Explicar a cul de lo algoritmos conocidos corresponde.


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 que la mezcla natural est bien programada
dadas las dos secuencias ordenadas ("corridas") siguientes
a = 03 07 13 19 29 37 43 57 61 71
b = 02 05 11 17 23 31 41 47 59 67

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

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

Completar el programa 2 (en Modula-2) para que realice el desplazamiento de Floyd y


desarrollar el segmento de programa que realiza la construccin de Floyd de un montn.

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

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

Cdigo de I.S: 402029


Cdigo de I.G: 412020
Primera Semana

Dpto. de Informtica y Automtica


Facultad de Ciencias

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

Comentar cualitativamente el anlisis del comportamiento del proceso de particin, explicando


las limitaciones de la clasificacin rpida.

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

(a) Insertar dato:=1

(b) Insertar dato:=3

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

Cdigo de I.S: 402029


Cdigo de I.G: 412020
Segunda Semana

Dpto. de Informtica y Automtica


Facultad de Ciencias

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.

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.- 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.- 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

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.

(a) Insertar dato:=1

(b) Insertar dato:=3

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.

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 de un algoritmo directo de clasificacin de
arreglos. Realizar el anlisis detallado calculando el nmero de comparaciones y de movimientos
para los casos mejor, peor y promedio.
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
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.

(a) Insertar dato:=1

(b) Insertar dato:=3

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

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

Completar el programa en Modula-2 para que realice el desplazamiento de Floyd y desarrollar


el segmento de programa que realiza la construccin de Floyd de un montn.

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.- 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.

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 de insercin 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 mtodo de clasificacin por mezcla directa. Explicar su


aplicacin, 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

70

Comentar el anlisis del coste de este mtodo de clasificacin.

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

Completar el programa 2 (en Modula-2) para que realice el desplazamiento de Floyd y


desarrollar el segmento de programa que realiza la construccin de Floyd de un montn.
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 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

Original
Dpto. de Informtica y Automtica
Facultad de Ciencias

Septiembre 2001

Duracin: 2 horas

Esta hoja de enunciados no debe ser entregada:


Indique claramente en la hoja de examen:
- La Ingeniera (Sistemas o Gestin) en la que est matriculado.
- 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.- El siguiente programa 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

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

Demonstration copy of activePDF Toolkit (http://www.active4.com)

Demonstration copy of activePDF Toolkit (http://www.active4.com)

Demonstration copy of activePDF Toolkit (http://www.active4.com)

Demonstration copy of activePDF Toolkit (http://www.active4.com)

Demonstration copy of activePDF Toolkit (http://www.active4.com)

Demonstration copy of activePDF Toolkit (http://www.active4.com)

Demonstration copy of activePDF Toolkit (http://www.active4.com)

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

y la longitud de trayectoria interna es 2*1+3*2+1*3=11

12) Solucin: D.
El rbol es:

10

15

18

y la longitud de trayectoria externa es 0*1+1*2+5*3+2*4=25

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

16) Solucin: C. Se encuentra resuelto en el texto base, pg 252.


17) Solucin: A. Se encuentra resuelto en el texto base, pg 253.
18) Solucin: A. Se encuentra resuelto en el texto base, pg 264.
19) Solucin: C. Se encuentra resuelto en el texto base, pg 265.
20) Solucin: C. Se encuentra resuelto en el texto base, pg 265.

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.

17) Solucin C. Anlogo al ejercicio del texto base, pg 265


18) Solucin C. Anlogo al ejercicio del texto base, pg 250-252
19) Solucin A. Anlogo al ejercicio del texto base, pg 253
20) Solucin B. ver texto base, pg 272
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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

Todos los ejercicios

(construccin de algoritmos, anlisis, etc),

deben explicarse detalladamente, tal y como se realiza en el texto


base.

En el curso 2000 - 2001 el texto base de la asignatura fue


actualizado. Por ello, algunas preguntas de los exmenes de cursos
anteriores estn fuera de temario o eran formuladas teniendo en
cuenta los contenidos del texto base del curso correspondiente,
por lo que en la actualidad se realizaran de otra manera en funcin
de los contenidos del nuevo.

CURSO 2000 - 2001


SEPTIEMBRE 2001
PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 50 - 53.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 86 - 89.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 215 - 218.
PREGUNTA 4: Este ejercicio es anlogo al mostrado en las pginas 264 - 265 del texto base,
figura 6.15.

ENERO 2001 (Primera Semana)


PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 55 - 57. Obsrvese
que el anlisis de los movimientos es el mismo que en la insercin directa. En la respuesta
debe mostrarse y realizarse completamente, tal y como se realiza en las pginas 52-53 del
texto base.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 95 - 101.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 155 - 159.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, Pgs. 264 - 265, figura
6.15.

FEBRERO 2001 (Segunda Semana)


PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 86 - 89.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 75 - 81.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 202 - 204.
PREGUNTA 4: Este ejercicio es un caso incluido en el ejemplo mostrado 250 - 252, figura 6.4.

CURSO 1999 - 2000


SEPTIEMBRE 2000
PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 59 - 62.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 75 - 81.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 264 - 265.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, 131 - 139. Esta pregunta
tiene una respuesta demasiado amplia con el texto base del curso. En la actualidad se
realizara sobre alguno de los aspectos que incluye. Por ejemplo, el concepto y manejo de
colisiones.

ENERO 2000 (Primera Semana)


PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 50 - 53.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 101 - 105. Como
se indica en la Gua Didctica no es necesario la implementacin del algoritmo completo, slo
para obtener la mxima calificacin es necesario comentar los procedimientos de distribucin y
mezcla.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 202 - 204.
PREGUNTA 4: Este ejercicio es un caso incluido en el ejemplo mostrado 250 - 252, figura 6.4.

FEBRERO 2000 (Segunda Semana)


PREGUNTA 1: De la implementacin del cdigo debe deducirse claramente que es el algoritmo
de insercin directa. Para ello conviene explicar una traza del cdigo. El anlisis de este
algoritmo se encuentra detallado en el texto base, Pgs. 50 - 53.
PREGUNTA 2: La respuesta a los apartados a) y b) se encuentra detallada en el texto base,
Pgs. 34 - 35. Los apartados c) y d) suelen ser incorrectamente resueltos porque deben
utilizarse los operadores definidos, bsicos y auxiliares, de los TDA, tal y como se detalla a lo
largo de todo el texto base. En ningn caso deben realizarse sobre las estructuras estticas o
dinmicas correspondientes a sus implementaciones. As, se deben utilizar las funciones
Sacar, PilaVaca, etc, y nunca manipular los arreglos o listas enlazadas. Esto es totalmente
contrario al concepto de TDA, y de la abstraccin y el encapsulado de datos.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo. Pgs. 230 - 231.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, Pgs. 264, figura 6.14.

CURSO 1998 - 1999


SEPTIEMBRE 1999
PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 55 - 57.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 116 - 120.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo. Pgs. 230 - 231.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, Pgs. 264, figura 6.14.

ENERO 1999 (Primera Semana)


PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 59 - 62.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 82 - 86.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo. Pgs. 230 - 231.
PREGUNTA 4: NO PERTENECE AL TEMARIO ACTUAL

FEBRERO 1999 (Segunda Semana)


PREGUNTA 1: NO PERTENECE AL TEMARIO ACTUAL
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 59 - 62.
PREGUNTA 3: La respuesta a los apartados a) y b) se encuentra detallada en el texto base,
Pgs. 34 - 35. Los apartados c) y d) suelen ser incorrectamente resueltos porque deben
utilizarse los operadores definidos, bsicos y auxiliares, de los TDA, tal y como se detalla a lo
largo de todo el texto base. En ningn caso deben realizarse sobre las estructuras estticas o
dinmicas correspondientes a sus implementaciones. As, se deben utilizar las funciones
Sacar, PilaVaca, etc, y nunca manipular los arreglos o listas enlazadas. Esto es totalmente
contrario al concepto de TDA, y de la abstraccin y el encapsulado de datos.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, Pgs. 264, figura 6.14.

CURSO 1997 - 1998


SEPTIEMBRE 1998
PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 59 - 62.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 75 - 81.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 202 - 204.
PREGUNTA 4: Este ejercicio es un caso incluido en el ejemplo mostrado 250 - 252, figura 6.4.

ENERO 1998 (Primera Semana)


PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 59 - 62. SELECC
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 116 - 120.
PREGUNTA 3: Este ejercicio es anlogo al ilustrado en la la figura 6.3 del texto base, Pgs.
248 - 249.
PREGUNTA 4: NO PERTENECE AL TEMARIO ACTUAL

FEBRERO 1998 (Segunda Semana)


PREGUNTA 1: De la implementacin del cdigo debe deducirse claramente que es el algoritmo
de insercin directa. Para ello conviene explicar una traza del cdigo. El anlisis de este
algoritmo se encuentra detallado en el texto base, Pgs. 50 - 53.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 101 - 105. Como
se indica en la Gua Didctica no es necesario la implementacin del algoritmo completo, slo
para obtener la mxima calificacin es necesario comentar los procedimientos de distribucin y
mezcla.
PREGUNTA 3: Este ejercicio es un caso incluido en el ejemplo mostrado 250 - 252, figura 6.4.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, 131 - 139. Esta pregunta
tiene una respuesta demasiado amplia con el texto base del curso. En la actualidad se
realizara sobre alguno de los aspectos que incluye. Por ejemplo, el concepto y manejo de
colisiones.

CURSO 1996 - 1997


SEPTIEMBRE 1997
PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 57 - 62.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 75 - 81.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo. Pgs. 230 - 231.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, 131 - 139. Esta pregunta
tiene una respuesta demasiado amplia con el texto base del curso. En la actualidad se
realizara sobre alguno de los aspectos que incluye. Por ejemplo, el anlisis.

ENERO 1997 (Primera Semana)


PREGUNTA 1: NO PERTENECE AL TEMARIO ACTUAL
PREGUNTA 2: De la implementacin del cdigo debe deducirse claramente que es el algoritmo
de insercin directa. Para ello conviene explicar una traza del cdigo. El anlisis de este
algoritmo se encuentra detallado en el texto base, Pgs. 50 - 53.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, 162 - 174.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo., 201 - 202.

FEBRERO 1997 (Segunda Semana)


PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 53 - 57.
Obsrvese que el anlisis de los movimientos es el mismo que en la insercin directa. En la
respuesta debe mostrarse y realizarse completamente, tal y como se realiza en las pginas 5253 del texto base.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 116 - 120.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base y en las pelculas
incluidas en el CDROM del mismo. Pgs. 230 - 231.
PREGUNTA 4: NO PERTENECE AL TEMARIO ACTUAL

CURSO 1995 - 1996


SEPTIEMBRE 1996
PREGUNTA 1: NO PERTENECE AL TEMARIO ACTUAL
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 53 - 57.
Obsrvese que el anlisis de los movimientos es el mismo que en la insercin directa. En la
respuesta debe mostrarse y realizarse completamente, tal y como se realiza en las pginas 52
- 53 del texto base.
PREGUNTA 3: Este es un ejercicio clsico de programacin de listas enlazadas, y como es
habitual existen diversas implementaciones vlidas. Las tcnicas y habilidades que debe
manejar con soltura son las que se detallan en el captulo 1 del texto base, y en especial en el
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, 131 - 139. Esta pregunta
tiene una respuesta demasiado amplia con el texto base del curso. En la actualidad se
realizara sobre alguno de los aspectos que incluye. Por ejemplo, el anlisis.

ENERO 1996 (Primera Semana)


PREGUNTA 1: NO PERTENECE AL TEMARIO ACTUAL
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 95 - 101.
PREGUNTA 3: La respuesta a los apartados a) y b) se encuentra detallada en el texto base,
Pgs. 34 - 35. Los apartados c) y d) suelen ser incorrectamente resueltos porque deben
utilizarse los operadores definidos, bsicos y auxiliares, de los TDA, tal y como se detalla a lo
largo de todo el texto base. En ningn caso deben realizarse sobre las estructuras estticas o
dinmicas correspondientes a sus implementaciones. As, se deben utilizar las funciones
Sacar, PilaVaca, etc, y nunca manipular los arreglos o listas enlazadas. Esto es totalmente
contrario al concepto de TDA, y de la abstraccin y el encapsulado de datos.
PREGUNTA 4: NO PERTENECE AL TEMARIO ACTUAL

FEBRERO 1996 (Segunda Semana)


PREGUNTA 1: NO PERTENECE AL TEMARIO ACTUAL
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 82 - 86.
PREGUNTA 3: Este es un ejercicio clsico de programacin de listas enlazadas, y como es
habitual existen diversas implementaciones vlidas. Las tcnicas y habilidades que debe
manejar con soltura son las que se detallan en el captulo 1 del texto base, y en especial en el

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.

CURSO 1994 - 1995


SEPTIEMBRE 1995
PREGUNTA 1: La respuesta se encuentra detallada en el texto base, Pgs. 57 - 62.
PREGUNTA 2: La respuesta se encuentra detallada en el texto base, Pgs. 116 - 120.
PREGUNTA 3: La respuesta se encuentra detallada en el texto base, Pgs. 160 - 161.
PREGUNTA 4: La respuesta se encuentra detallada en el texto base, 131 - 139. Esta pregunta
tiene una respuesta demasiado amplia con el texto base del curso. En la actualidad se
realizara sobre alguno de los aspectos que incluye. Por ejemplo, el concepto y manejo de
colisiones.

ESTRUCTURAS DE DATOS Y ALGORITMOS


Recopilacin de las Preguntas de examen clasificadas por temas, (curso 95/96 a 98/99)
p o r A lb e r t R . G a rr id o , a lu m n o d e I.T . I. d e S is t e m a s . (C . A . 6 1 0 0 -T e r r a s s a )

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

b) Realizar el anlisis del programa 1, calculando el nmero de comparaciones y de


movimientos para los casos mejor, peor y promedio.
[2.2.1;86]
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]; j:=j-1; END;
a[j]:=a[0];
END;
END incognita
Programa 1
[9495E-2] [9596S-2] [9697F-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 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

Preguntas Exmenes E.D.A.

[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

Preguntas Exmenes E.D.A.

Completar el programa 2 (en Modula-2) para que realice el desplazamiento de Floyd


y desarrollar el segmento de programa que realiza la construccin de Floyd de un
montn.
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
Programa 2
[2.3.2;98]
[9596F-2] [9899E-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.
[2.3.3;100]
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.
[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

Preguntas Exmenes E.D.A.

[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

Explicar cmo se realiza la clasificacin por mezcla en un arreglo y discutir si su


aplicacin es o no ms adecuada que el mtodo de clasificacin rpida.
[2.4.1;110]

[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

Preguntas Exmenes E.D.A.

[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]

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.
[4.3;195]
b) Procedimiento recursivo para imprimir una lista enlazada con implementacin
dinmica.
c) Procedimiento para imprimir una pila con implementacin esttica. [3.2;AP3]
d) Procedimiento para imprimir una cola con implementacin dinmica.
[3.4;AP24]

[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

y el nmero dado como lmite es 43, la lista resultante es

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]

[9697F-3] [9697S-3] [9899E-3]


En la figura 1 se representan 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.
Sigue en la prxima pgina...

albert@catworld.net

Pgina 6 de 8

Preguntas Exmenes E.D.A.

(a) Insertar dato:=1

(b) Insertar dato:=3

En el rbol (a) se inserta un dato de valor 1.


En el rbol (b) se inserta un dato de valor 3.
[4.5.1;233/236]
[9596F-4] [9798S-4]
Definir un rbol perfectamente balanceado. Programar un procedimiento en Modula2 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.
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

Preguntas Exmenes E.D.A.

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]

[9596E-4] [9697F-4] [9798E-4] [9899E-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.
[4.6;243]

[9596E-4] [9697F-4] [9798E-4] [9899E-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.
[5;285..289]

albert@catworld.net

Pgina 8 de 8

Preguntas Exmenes E.D.A.

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

Coste Peor Caso


C

M min = 2(n M

Como el de la burbuja pero en


ambos sentidos: ascendente y
descendente

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 )

C = n(log 2 n log 2 e) + log 2 e

Mov.

Como la directa

Como la directa

Como la directa

C min = 3(n 1C min = 3(n 1)


M

Compara un par de elementos


contiguos, si no est ordenado lo
ordena.

max

Comp.

Selecciona el elemento menor del Comp.


vector sin ordenar y lo coloca al
final de la parte ordenada.
Mov.

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 ))

Como Intecambio Como Intecambio directo


Como Intecambio directo
directo
Se basa en la ordenacin por
Observaci El anlisis detallado del algoritmo es supercomplicado y el libro no lo explica.
insercin de los elementos que
ones
difieren h1 posiciones, luego h2, asi Coste
n 2

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

Coste Mejor Caso

= 9 4

9 2

+ 1

Este algoritmo usa las propiedades Comp.


de montn para ordenar un vector
en dos veces: construyendo un
montn en la primera mitad
primero y kuego invirtiendo el
vector para aplicar el mismo
Mov.
mtodo.

C min = 2n(log i ) C max = 2 n log n O ( n )

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)

También podría gustarte