Programación II |
Examen Final |
Diciembre de 1998 | Altillo.com |
Se cuenta con un árbol binario de búsqueda que representa los horarios de movimientos de vuelos en un aeropuerto, durante un día. El mismo está ordenado por hora de movimiento y su factibilidad es 0..2 por número de vuelo. Si el vuelo tiene dos movimientos (por ejemplo, llega al aeropuerto y parte ese mismo día), habrá dos nodos para ese vuelo pero con distinta hora; en caso de haber un solo nodo de vuelo, indica que tiene un solo movimiento para ese día (por ejemplo, el vuelo parte ese día a algún destino y vuelve otro día).
TYPE
TY_ARBOL = ^TY_NODO;
TY_RANGO = 100..999;
TY_NODO = RECORD
HORA : String[5]; {hora de 1ero. o 2do. movimiento}
CIUDAD : String[20]; {ciudad de origen o de destino }
VUELO : TY_RANGO; {nro. de vuelo}
IZQ, DER : TY_ARBOL
END;
VAR
AEREO : TY_ARBOL;
Se pide
A) Desarrollar un procedimiento con los parámetros necesarios y suficientes que dado un número de vuelo, devuelva los dos punteros a los nodos en dónde se encuentra si el vuelo tiene dos movimientos para ese día, o NIL en el/los que correspondan.
B) Escribir una llamada al procedimiento desarrollado en el punto A desde el programa principal y mostrar por pantalla un mensaje indicando:
· Nro. de vuelo
· Ciudad del 1er. movimiento y ciudad del 2do. Movimiento (si existe).
· Hora del 1er. movimiento y hora del 2do. movimiento (si existe).
C) ¿Cómo recorrió el árbol?
D) ¿Podría haber usado otros recorridos? Si la respuesta es afirmativa, indique cuáles.
NOTA:
* Respetar la declaración propuesta y agregar las variables globales que sean necesarias.
* Recorrer el árbol una sola vez tratando de minimizar las llamadas recursivas.
2. Dado el siguiente árbol y procedimiento:
procedure F211298 (P : PtArbB);
VAR X : PtArbB;
Begin
if P < > NIL then begin
X := P^.IZQ;
P^.IZQ := P^.DER;
P^.DER := X;
F211298 (P^.IZQ);
F211298 (P^.DER);
end
End;
Se pide
a) Realizar su seguimiento cuando se lo invoca con el puntero a la raíz del árbol dado.
b) Mostrar gráficamente cómo se va modificando el árbol y en qué momento se produce cada modificación.
c) Sin volver a realizar el seguimiento, indicar cómo quedaría el árbol: