Heap
Las heaps son estructuras de datos avanzadas útiles en aplicaciones donde se desea ordenar e implementar colas de prioridad. Son árboles binarios regulares con dos propiedades especiales.
Prioridad de orden de una Heap
La propiedad de orden de heap es diferente para las siguientes dos estructuras:
- Min Heap
- Max Heap
Los Min Heaps se construyen en base a la propiedad Min Heap y los Max Heaps se construyen en base a la propiedad Max Heap. Veamos cómo son diferentes.
Propiedad de Max Heap
Todas las claves del nodo padre deben ser mayores o iguales a sus claves de nodo hijas en una max heap. Por lo tanto, el nodo raíz siempre contendrá el elemento más grande en la heap. Si el nodo A tiene un nodo secundario B, entonces:
key(A)≥key(B)
Propiedad de Min Heap
En Min Heaps, todas las claves del nodo padre son menores o iguales a sus claves del nodo hijo. Por lo tanto, el nodo raíz, en este caso, siempre contendrá el elemento más pequeño presente en la heap. Si el nodo A tiene un nodo secundario B, entonces:
key(A)≤key(B)
Implementación
Ejecuta el código en este playground.