Modelo por capas
Árbol completo en un array
Un árbol binario completo tiene todos sus niveles llenos salvo quizá el último, que se llena de izquierda a derecha. Esa forma permite guardarlo en un array sin punteros, nivel por nivel. Mira la figura: el mismo heap como árbol (arriba) y como array (abajo).
Las posiciones se calculan:
hijos de i: 2i + 1 y 2i + 2padre de i: (i − 1) / 2, redondeando hacia abajoUn min-heap cumple el invariante:
cada padre es menor o igual que sus hijosPor eso el mínimo está siempre en la raíz, la posición 0. El invariante no dice nada de los hermanos: 5 y 3 no tienen por qué estar en orden entre sí.