Altillo.com > Exámenes > ORT > Programación II

Programación II

Examen Final

Febrero de 2000 Altillo.com

1. Dado un Árbol Binario no vacío cuyos nodos contienen números enteros y un valor entero.
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 elimine del árbol los nodos HOJAS que sean múltiplos del valor dado.
c) Escribir las instrucciones necesarias para la llamada al procedimiento desarrollado en b), indicando claramente qué parámetros utiliza y sus valores.
Ejemplo:
                (80)
               /       \
         (50)        (100)
         /    \         /      \
    (20)   (70) (90)  (200)
              /      /        /      \
        (60)  (85)  (150)   (300)
Si Valor dado = 2 ---> el Árbol quedaría:
                (80)
                /     \
          (50)      (100)
               \       /      \
            (70) (90) (200)
                    / 
                (85)

2. Dada la siguiente declaración y procedimiento recursivo:
Type
    TLISTA = ^ PNODO;
    PNODO = Record
                            DATO: Integer;
                            SIG: TLISTA
                      End;
Var
    LIST, M : TLISTA;
Procedure CAVERNA (Var L:TLISTA; Var M:TLISTA; N:Integer);
Var
    X, AUX: TLISTA;
Begin
    if L <> Nil Then
        Begin
            CAVERNA (L^.SIG, M, N);
            if (L^.DATO MOD N = 0) Then
                Begin
                    X := L^.SIG;
                    AUX := M;
                    M:= L;
                    L:= X;
                    M^.SIG := AUX
                End
        End;
End;

Se pide:
Desarrollar el seguimiento del procedimiento CAVERNA indicando claramente el contenido y actualización de las variables, graficando las modificaciones de la lista y mostrando cómo queda luego de la ejecución, cuando se realiza la siguiente secuencia de llamada:
M := nil;
CAVERNA (LIST, M, 3);