Ciao e benvenuta.Originariamente inviato da Sceila
L'esercizio è questo:
Implementare un metodo completo(n) che dato un intero n,
restituisce un albero binario completo con n nodi (un albero completo ha tutti i
livelli pieni, eccetto l’ultimo, e l’ultimo livello è riempito da sinistra verso destra).
La prima cosa da valutare/stabilire è come rappresentare i nodi. Devono essere degli oggetti, chiaramente. Ma la classe devi crearla tu (non so se ti è stata data piena liberta nel definirla, o se ti sono state date delle indicazioni o addirittura ti è già stata fornita la classe).
Un nodo in genere contiene un "valore", ed essendo per un albero "binario" avrà riferimenti a due nodi "figli". Non è chiaro dal testo sopra cosa debba essere il valore del nodo, questo dovresti valutarlo tu (potrebbe anche non avere un valore).
Il metodo completo(n) dovrà poi istanziare i vari nodi e fare i collegamenti tra padri e i suoi figli. Dal momento che deve avere esattamente n nodi, la cosa più semplice che può venire in mente è di partire dal livello più alto (1 nodo) e man mano creare i livelli inferiori, da sinistra verso destra, fino a che il conteggio si "esaurisce" arrivando ad avere n nodi.
E come giustamente hai precisato, l'ultimo livello può appunto non essere completo.
Comunque la prima questione è: definire come rappresentare i nodi.