Non puoi modificare la classe nodoBST in modo che possegga due metodi di questo tipo?
codice:
public void setLeft(nodoBST nodo) {
this.left = nodo;
}
public void setRight(nodoBST nodo) {
this.right = nodo;
}
(magari sarebbe utile avere dei metodi appositi per prelevare il left ed il right, invece di avere accesso diretto ai campi d'istanza).
Poi dovrai modificare l'insertRicorsivo in modo che utilizzi questi due metodi e richiami se stessa solo se il nodo left/right non è nullo.
codice:
public void insertRicorsivo(nodoBST p,int val)
{
if(p!=null) {
if(val<p.key) {
if (p.left != null) {
insertRicorsivo(p.left,val);
} else {
p.setLeft( new nodoBST(val) );
}
} else {
if(val>p.key) {
if (p.right != null) {
insertRicorsivo(p.right,val);
} else {
p.setRight( new nodoBST(val) );
}
}
}
} else {
// L'albero non può essere nullo
}
}
Ciao.