Programación II |
Examen Final |
Agosto de 1999 | Altillo.com |
1. Dado un Árbol Binario de Búsqueda no vacío cuyos nodos contienen números enteros NO REPETIDOS y un valor que EXISTE en el árbol.
Se pide:
a) Definir la estructura en Pascal (parte declarativa: CONST, TYPE y VAR).
b) Desarrollar un procedimiento recursivo con los parámetros necesarios y suficientes, que devuelva la cantidad de nodos con valores menores al dado y un valor booleano en TRUE si el valor dado es mayor a todos sus descendientes y FALSE en caso contrario.
c) Escribir las instrucciones necesarias para la llamada al procedimiento desarrollado en b), indicando claramente qué parámetros utiliza y sus valores.
2. Dadas las siguientes declaraciones y el procedimiento RECU9908:
Type
TyPt = ^TyNodo;
TyNodo = record
VALOR : integer;
SIG : TyPt
end;
Var
CONT : integer;
procedure RECU9908 (var P : TyPt; var QQ : integer);
var FUE : TyPt;
Begin
if P<> NIL then
if P^.VALOR mod 2 = 0 then
begin
FUE := P;
P := P^.SIG;
dispose(FUE);
RECU9908 (P , QQ)
end
else
begin
QQ := QQ + 1;
RECU9908 (P^SIG , QQ);
writeln(P^.VALOR)
end
End;
Se pide:
a) Realizar su seguimiento indicando claramente el contenido y actualización de las variables, graficando las modificaciones de la lista y mostrando cómo queda la pantalla luego de la ejecución, cuando se realiza la siguiente secuencia de invocación:
CONT := 0;
RECU9908 (L1 ; CONT);
b) Sin realizar otro seguimiento indicar cómo queda la lista L2 y mostrar la pantalla luego de la ejecución, cuando se realiza la siguiente secuencia de invocación:
CONT := 0;
RECU9908 (L2; CONT);
3. Sean los siguientes recorridos de un Árbol Binario:
PREORDEN : 11 22 33 44 55 66
INORDEN : 22 11 44 33 55 66
Se pide:
a) Dibujar el árbol
b) Decir si es Árbol Binario de Búsqueda. JUSTIFICAR.