consideri il seguente matrice, che viene rivendicata abbia rappresentato un albero binario:albero binario rappresentata utilizzando matrice
[1, 2, 5, 6, -1, 8, 11]
Dato che la indice con valore -1 indica l'elemento radice, ho le seguenti domande:
a) Come è rappresentato questo in realtà?
Dovremmo seguire le seguenti formule (source from this link) per capire l'albero? Tre semplici formule consentono di passare da l'indice del genitore per l'indice dei suoi figli e 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)
Se usiamo formule di cui sopra, quindi indice (root) = 3, indice (Child Left) = 7, che non esiste.
b) È importante sapere se si tratta di un albero binario completo o no?
penso che sia anche interessante notare che genitore del nodo di indice i si può accedere, cercando in indice (i-1)/2. – Saraph