Estoy tratando de demostrar que un montón binario con nodos tiene exactamente hojas, dado que el montón se construye de la siguiente manera:
Cada nuevo nodo se inserta a través de percolar . Esto significa que cada nuevo nodo debe crearse en el siguiente hijo disponible. Lo que quiero decir con esto es que los niños se llenan de nivel hacia abajo y de izquierda a derecha. Por ejemplo, el siguiente montón:
0
/ \
1 2
se tiene que se han construido en este orden: 0, 1, 2. (Los números son sólo índices, no dan ninguna indicación de los datos reales celebradas en ese nodo.)
Esto tiene dos implicaciones importantes:
No puede existir ningún nodo en el nivel sin que el nivel esté completamente lleno
Debido a que los niños se construyen de izquierda a derecha, no puede haber "espacios vacíos" entre los nodos en el nivel , o situaciones como las siguientes:
0 / \ 1 2 / \ \ 3 4 6
(Esto sería un montón ilegal según mi definición.) Por lo tanto, una buena manera de pensar en este montón es una implementación de matriz de un montón, donde no puede haber ningún "salto" en las indecesiones de la matriz.
Entonces, estaba pensando que la inducción probablemente sería una buena manera de hacer esto ... Tal vez algo que tenga que lidiar incluso con casos extraños para n. Por ejemplo, alguna inducción que utiliza el hecho de que los montones pares construidos de esta manera deben tener un nodo interno con un hijo para un n par, y no tales nodos para un n impar. Ideas?