E' sbagliato, se v è il figlio sinistro del nodo in posizione i, v sta in posizione 2*i+1.se il nodo v è figlio sinistro del nodo u allora la posizione di v è p(v) = 2*p(u),
se il nodo v è figlio destro del nodo u allora la posizione di v è p(v) = 2*p(u) + 1;
Se è figlio destro sta in posizione 2*1+2.
Su questo sono d' accordo, non serve il tipo di ritorno.Lo puoi togliere.Originariamente inviato da pietrol83
[...]ma io avrei fatto il metodo nn come funzione ma come procedura (non restituendo nessun valore e agganciando l'albero passato come argomento all'albero this).
Prova a dividere il problema in sotto-problemi:[...] la difficoltà che trovo io è: come faccio a determinare le nuove posizioni nel vettore dell'albero this che devono essere occupate dai nodi dell' albero passato come argomento???
-Fai un metodo per inserire un singolo nodo come figlio destro o sinistro di un nodo;
-Se devi inserire un nodo come figlio sinistro del nodo in posizione i, supponendo che il sotto-albero da aggiungere ha m nodi, userai m volte il metodo appena creato, ma con parametri diversi.
Di certo la tua implementazione non è la migliore se devi fare di continuo inserimenti o cancellazioni.
Fai prima ad avere due campi interni che sono due puntatori a nodo, che sono i due figli (o NULL se il figlio è assente).
Ma ci capiamo molto meglio se fai vedere il codice.