| Heap |
1) Un HEAP de n elementos puede definirse como un vector en el que sus elementos cumplen las siguientes condiciones.
Al elemento k-ésimo se lo denomina nodo padre de los elementos 2k y 2k+1. Con esto se ve que:
v[1] >= v[2] y v[3]
v[2] >= v[4] y v[5]
v[3] >= v[6] y v[7]
Ejemplo:
70 33 56 25 2 30 25 21
A partir de un HEAP es posible armar un vector ordenado. Para ello, se remueve del HEAP el primer elemento que es el mayor de vector ordenado y se reordena el HEAP para transformarlo en otro HEAP de n-1 elementos. Repitiendo el procedimiento hasta sacar a todos los elementos del HEAP se obtendría el vector ordenado.
Implementar una función ( y programa que la use) que a partir de un HEAP de SIZE elementos genere su vector ordenado.
Hint: La remoción de un elemento del HEAP causa que algunos de los nodos hijos del elemento removido pase a ocupar su lugar