Programación II |
Examen Final |
Agosto de 2000 | 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) Declarar 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 suma de valores de los nodos menores al dado y un valor booleano en TRUE si el valor dado es menor 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 RR0900:
Type
TLISTA = ^ PNODO;
PNODO = Record
VAL: integer;
SIG: TLISTA
End;
Var
LISTA: TLISTA;
CN: Integer;
Procedure RR0900 (L:TLISTA; AT:TLISTA; Var PR:TLISTA; Var C: Integer);
Begin
If L <> Nil Then
Begin
RR0900(L^.SIG, L, PR, C);
C := C + 1;
L^.SIG := AT;
writeln(L^.VAL)
End
Else
Begin
C := 0;
PR := AT
End
End;
Se pide:
a) Realizar su seguimiento indicando claramente el contenido y actualización de las variables, graficando las modificaciones de la lista, las salida y el momento en que se producen, cuando se realiza la siguiente secuencia de invocación: CN := 10; RR0900(L1, nil, L1, CN)
b) Sin realizar otro seguimiento indicar cómo queda la lista apuntada por L2 cuando se realiza la siguiente secuencia de invocación: CN := 12; RR0900(L2, nil, L2, CN)