Supponendo tu stia utilizzando un vettore come un albero binario completo e il nodo padre sia l'indice 0, mi sembra che tu non stia rispettando le relazioni padre-figlio. Infatti le relazioni di parentela dovrebbero essereTu invece stai utilizzando come relazioni 2k-1 e 2kcodice:left_child(int k) = 2*k+1 right_child(int k) = 2*k+2 //-1 on parent(0) parent(int k) = round_down((k-1)/2) //0 on parent(0) parent(int k) = trunc((k-1)/2)