Salve a tutti, sono nuova del forum e spero di poter trovare gente che mi possa aiutare![]()
Ho iniziato da poco gli alberi binari e ho un problema con un metodo.
Dato un albero binario T e una Position V il metodo deve restituire il numero di nodi del sottoalbero di T radicato in v, se e solo se esso soddisfi la seguente proprietà : per ogni nodo w del sottoalbero radicato in v, il numero di nodi del sottoalbero destro deve essere maggiore o uguale al numero dei nodi del sottoalbero sinistro. (metodo ricorsivo) Se non soddisfa la proprietà il metodo deve restituire -1.
Adesso io ho buttato giù qualche riga di codice ma sembra che non vada. Qualcuno può aiutarmi per favore?
public int isRightLarger(BinaryTree<E> T, Position<E> v){
int numSinistro = 0; int numDestro = 0;
if(T.hasLeft(v))
numSinistro = isRightLarger(T, left());
if(T.hasRigt(v))
numDestro = isRightLarger(T, right());
if(numDestri >= numSinistri)
return numDestri + numSinistri + 1;
return -1;
}
Grazie in anticipo![]()