Está en la página 1de 3

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACION

Tcnicas Avanzadas de Programacin e o


Tarea #2. Heaps Binomiales Fecha de Entrega: Jueves 31 de Marzo de 2011

Una forma de describir un rbol n-ario es que cada nodo tenga un apuntador a a su padre. Por ejemplo, el arbol de la Figura 1 podr representarse as a : 4 5 0 2 3 5 1 1 3 1

Figura 1: rbol n-ario a Esto indica que existe un enlace desde el nodo 4 al 5 (5 es el padre de 4), luego un enlace del 5 al 1, y as sucesivamente. El orden en que aparecen los enlaces es importante. Por ejemplo, las entradas 5 1 y 0 1 indican que el nodo 5 est a la izquierda del nodo 0. Por el contrario, si estas entradas aparecieran en a orden inverso (primero 0 1 y luego 5 1) esto indicar que el nodo 0 est a a a la izquierda del nodo 5. Suponga ahora que Ud. tiene una coleccin de rboles n-arios descritos coo a mo se explic anteriormente. Se quiere que Ud. haga un programa que permita o determinar si esa coleccin de rboles n-arios es un Heap Binomial o no. o a Entrada: la entrada ser le por la consola (stdin). La entrada comena da zar con una l a nea que contendr un nmero N que indica el nmero de rboles a u u a en la ra del Heap Binomial. A continuacin vendr la descripcin de cada z o a o uno de los rboles. La descripcin de cada rbol comienza con una l a o a nea que contiene el nmero V de nodos del rbol. A continuacin vienen V l u a o neas, cada 1

una conteniendo el valor de la clave para el nodo i-simo (0 < i < V ). A cone tinuacin hay una l o nea con el nmero E de enlaces hijo-padre en el rbol. u a A continuacin vendrn E l o a neas que contienen cada una un enlace de la forma H P indicando que existe un enlace entre el nodo H y el nodo P (P es el padre de H), 0 H, P < V . La entrada nalizar con un caso en el que N = 0. a Un ejemplo para la entrada ser a: 2 2 3 5 1 1 4 2 8 5 9 3 1 2 3 1 4 3 2 1 1 3 0 1 2 1 2 2 1 1 1 0

0 0 1

3 3 3

Salida: Por cada posible Heap Binomial descrito en la entrada, la salida debe contener la palabra SI cuando efectivamente es un Heap Binomial o NO en caso contrario. Para la entrada anterior la salida correspondiente ser a: SI 2

NO NO La salida no debe contener ningn otro mensaje. Unicamente l u neas con las palabras SI o NO. Esta tarea puede implementarse usando los lenguajes C++ o Java. Debe entregar el o los archivos fuente. Recuerde que la entrada debe ser le por la entrada da estndar (stdin) y la salida debe ser escrita por la salida estndar (stdout). a a GDTAP

También podría gustarte