allora l'albero binario è implementato con un vettore, cioè i nodi dell'albero binario vanno inseriti in un vettore in questo modo:
se il nodo v è la radice allora v va in posizione 1 (nel vettore sarà posizione 0),
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;
per quanto riguarda i metodi insfigliosx (insfigliodx), questi prendono come argomento due alberi binari (con vettore) e restituiscono un albero binario (con vettore), dove il primo albero binario che prende il metodo è proprio l'oggetto istanziato (this) e il secondo è un altro albero binario da agganciare al primo prendendo la radice (del secondo albero) e inserendola come figlio sinistro del nodo passato come argomento (dell'albero this). l'albero risulatante dovrebbe essere assegnato ad un terzo sottoalbero, 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). la difficoltà che trovo io è: come faccio a determinare le nuove posizioni nel vettore dell'albero this che devono essere occupate dai nodi dell'labero passato come argomento??? so anche che deve essere ridimensionata la dimensione del vettore ell'albero this in quanto se un albero binario ha n nodi allora la dimensione del vettore deve essere 2^n - 1.

Rispondi quotando