Considere la siguiente matriz, que se afirma que se han representado un árbol binario:Binary Tree representado usando array
[1, 2, 5, 6, -1, 8, 11]
Dado que la índice con valor -1 indica el elemento raíz, tengo preguntas a continuación:
a) ¿Cómo se representa esto realmente?
¿Deberíamos seguir las siguientes fórmulas (source from this link) para descubrir el árbol? tres fórmulas simples permiten que pase a partir del índice de la matriz con el índice de sus hijos y viceversa:
* if index(parent) = N, index(left child) = 2*N+1
* if index(parent) = N, index(right child) = 2*N+2
* if index(child) = N, index(parent) = (N-1)/2 (integer division with truncation)
Si utilizamos las fórmulas anteriores, entonces el índice (de raíz) = 3, índice (hijo izquierdo) = 7, que no existe.
b) ¿Es importante saber si es un árbol binario completo o no?
Creo que es también digno de mención que los padres del nodo en el índice i se puede acceder por buscar en el índice (i-1)/2. – Saraph